本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

通过 Kubernetes 注释覆盖监控器阈值参数

概述

SUSE Observability 提供 开箱即用的监控器,可对 Kubernetes 集群中可能发生的常见问题进行监控。这些监控器使用某些适合大多数用例的默认参数,但有时需要通过覆盖一些默认参数(如 thresholdfailureState)来调整其行为。 声明覆盖的机制是通过 Kubernetes 资源注释,指明它们应适用于哪个监控器和组件。例如,我们可以为特定服务的 failureState 监控器覆盖 Available service endpoints,以便在失败时发出 CRITICAL 状态,而不是默认的 DEVIATING

how-to

作为示例,这些步骤将覆盖 Kubernetes HTTP 服务的 Available service endpoints 监控器的参数。

how-to 构建我的注释

SUSE Observability 监控器的覆盖注释键遵循以下约定:

monitor.${owner}.stackstate.io/${monitorShorName}

owner 属性表示创建该监控器的人,对于开箱即用的监控器是 kubernetes-v2,而 monitorShorName 属性表示监控器的 ID,可以从监控器的 identifier 属性中提取,该属性可以通过 CLI 在列出或检查监控器时读取。

sts monitor list

ID              | STATUS  | IDENTIFIER                                                                          | NAME                                        | FUNCTION ID     | TAGS
8051105457030   | ENABLED | urn:stackpack:kubernetes-v2:shared:monitor:kubernetes-v2:service-available-endpoint | Available service endpoints                 | 233276809885571 | [services]

在我们的示例中,标识符是 urn:stackpack:kubernetes-v2:shared:monitor:kubernetes-v2:service-available-endpoint,而 monitorShorName 对应于 service-available-endpoint 中的最后一个段,因此注释键为:

monitor.kubernetes-v2.stackstate.io/service-available-endpoint

注释负载是一个 JSON 对象,其中可以定义以下可选参数:

  • threshold:可选。一个用于比较的数值阈值。

  • failureState:可选。可以是“CRITICAL”或“DEVIATING”。“CRITICAL”在 SUSE Observability 中显示为红色,而“DEVIATING”显示为橙色,以表示不同的严重性。

  • enabled:可选。布尔数据类型,决定监控器是否会为该组件生成健康状态。

完整的注释将如下所示

    monitor.kubernetes-v2.stackstate.io/service-available-endpoint: |-
      {
        "threshold": 0.0,
        "failureState": "CRITICAL",
        "enabled": true
      }

为自定义监控器构建一个覆盖

任何使用 使用 CLI 向组件添加阈值监控器 指南创建的自定义阈值监控器都适合覆盖参数,因为 示例显示 自定义监控器的标识符结构为 urn:custom:monitor:{monitorShortName},因此此类标识符的覆盖注释键预期为

monitor.custom.stackstate.io/${monitorShortName}

示例使用标识符 urn:custom:monitor:deployment-has-replicas,因此注释键将是

monitor.custom.stackstate.io/deployment-has-replicas

完整的注释将如下所示

    monitor.custom.stackstate.io/deployment-has-replicas: |-
      {
        "threshold": 0.0,
        "failureState": "CRITICAL"
        "enabled": true
      }