|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
通过 Kubernetes 注释覆盖监控器阈值参数
概述
SUSE Observability 提供 开箱即用的监控器,可对 Kubernetes 集群中可能发生的常见问题进行监控。这些监控器使用某些适合大多数用例的默认参数,但有时需要通过覆盖一些默认参数(如 threshold 或 failureState)来调整其行为。
声明覆盖的机制是通过 Kubernetes 资源注释,指明它们应适用于哪个监控器和组件。例如,我们可以为特定服务的 failureState 监控器覆盖 Available service endpoints,以便在失败时发出 CRITICAL 状态,而不是默认的 DEVIATING。
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
}