第 5 章 AlertingRule [monitoring.openshift.io/v1]
- 描述
- AlertingRule 代表一组用户定义的 Prometheus 规则组,其中包含警报规则。此资源是集群管理员根据 OpenShift 中平台监控堆栈记录的指标创建警报的方法,如部署到 openshift-monitoring 命名空间中的 Prometheus 实例。您可以使用它来根据组件(如 node_exporter)中的指标创建没有 OpenShift 附带的自定义警报规则,它提供机器级别的指标,如 CPU 使用量或 kube-state-metrics,它提供了有关 Kubernetes 使用量的指标。API 与来自 prometheus-operator 的上游 PrometheusRule 类型兼容。这里不允许记录规则的主要区别。对于创建的每个 AlertingRule 资源,将在 openshift-monitoring 命名空间中创建对应的 PrometheusRule。OpenShift 要求管理员使用 AlertingRule 资源而不是上游类型,以允许更好的 OpenShift 默认和验证,而不直接修改上游 API。您可以在此处找到 PrometheusRule 资源的上游 API 文档 :https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md 兼容性级别 1: 可在主发行版本中至少提供 12 个月或 3 个次版本(以更长的时间为准)。
- 类型
-
object
- 必填
-
spec
-
5.1. 规格
属性 | 类型 | 描述 |
---|---|---|
|
| APIVersion 定义对象的这个表示法的版本化的 schema。服务器应该将识别的模式转换为最新的内部值,并可拒绝未识别的值。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind 是一个字符串值,代表此对象所代表的 REST 资源。服务器可以从客户端向其提交请求的端点推断。无法更新。采用驼峰拼写法 (CamelCase)。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 标准对象元数据。更多信息: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
|
| spec 描述此 AlertingRule 对象的所需状态。 |
|
| status 描述了此 AlertOverrides 对象的当前状态。 |
5.1.1. .spec
- 描述
- spec 描述此 AlertingRule 对象的所需状态。
- 类型
-
object
- 必填
-
groups
-
属性 | 类型 | 描述 |
---|---|---|
|
| 组是分组警报规则的列表。规则组是 Prometheus 并行处理规则的单元。单个组中的所有规则共享配置的评估间隔。组中的所有规则将在此间隔、顺序上处理,并将处理所有规则。通常,将相关的警报规则分组到单个 AlertingRule 资源中,并在该资源中、紧密相关的警报或只是具有相同间隔的警报到单个组中。您还可以自由使用单个规则组创建 AlertingRule 资源,但请注意,如果组非常大或具有非常复杂的查询表达式来评估,这可能会对 Prometheus 产生性能影响。在多个组中分散非常复杂的规则,允许并行处理它们,也是常见的用例。 |
|
| RuleGroup 是按顺序评估的警报规则的列表。 |
5.1.2. .spec.groups
- 描述
- 组是分组警报规则的列表。规则组是 Prometheus 并行处理规则的单元。单个组中的所有规则共享配置的评估间隔。组中的所有规则将在此间隔、顺序上处理,并将处理所有规则。通常,将相关的警报规则分组到单个 AlertingRule 资源中,并在该资源中、紧密相关的警报或只是具有相同间隔的警报到单个组中。您还可以自由使用单个规则组创建 AlertingRule 资源,但请注意,如果组非常大或具有非常复杂的查询表达式来评估,这可能会对 Prometheus 产生性能影响。在多个组中分散非常复杂的规则,允许并行处理它们,也是常见的用例。
- 类型
-
array
5.1.3. .spec.groups[]
- 描述
- RuleGroup 是按顺序评估的警报规则的列表。
- 类型
-
object
- 必填
-
name
-
rules
-
属性 | 类型 | 描述 |
---|---|---|
|
| 间隔是评估组中的规则的频率。如果没有指定,则默认为 Prometheus 中配置的 global.evaluation_interval,其本身默认为 30 秒。您可以通过检查平台 Prometheus 配置来检查此值是否已从集群上的默认值修改:该资源中的相关字段是 spec.evaluationInterval |
|
| name 是组的名称。 |
|
| rules 是按顺序评估的警报规则的列表。Prometheus 可以并行处理规则组,但单个组中的规则始终按顺序处理,并且处理所有规则。 |
|
| 规则描述了警报规则。请参阅 Prometheus 文档: - https://www.prometheus.io/docs/prometheus/latest/configuration/alerting_rules |
5.1.4. .spec.groups[].rules
- 描述
- rules 是按顺序评估的警报规则的列表。Prometheus 可以并行处理规则组,但单个组中的规则始终按顺序处理,并且处理所有规则。
- 类型
-
array
5.1.5. .spec.groups[].rules[]
- 描述
- 规则描述了警报规则。请参阅 Prometheus 文档: - https://www.prometheus.io/docs/prometheus/latest/configuration/alerting_rules
- 类型
-
object
- 必填
-
alert
-
expr
-
属性 | 类型 | 描述 |
---|---|---|
|
| alert 是警报的名称。必须是有效的标签值,即可以包含任何 Unicode 字符。 |
|
| 要添加到每个警报的注解。这些是可用于存储您不会查询较长的额外信息的值,如警报描述或 runbook 链接。 |
|
| EXPR 是要评估的 PromQL 表达式。每个评估周期都会在当前时间评估,所有结果时间序列都会变为待处理或触发警报。这通常是代表 PromQL 表达式的字符串,例如: mapi_current_pending_csr > mapi_max_pending_csr > mapi_max_pending_csr,这可能是一个简单的整数,例如,如果目的是创建始终触发的警报。这有时用于创建 always-firing "Watchdog" 警报,以确保警报管道正常工作。 |
|
| 对于,在首次返回结果后,警报被视为触发的时间。尚未触发过长的警报将被视为待处理。 |
|
|
为每个警报添加或覆盖的标签。警报的 PromQL 表达式的结果会在评估表达式后为警报产生一组现有标签,这里指定的任何标签都与这个设置中的标签相同,此处的 wins 标签并覆盖前面的值。通常,这些值应该比较短,对于查询非常有用。一个常见示例是警报的严重性,其中一个在 |
5.1.6. .status
- 描述
- status 描述了此 AlertOverrides 对象的当前状态。
- 类型
-
object
属性 | 类型 | 描述 |
---|---|---|
|
| observedGeneration 是您处理的最后生成更改。 |
|
| PrometheusRule 是此 AlertingRule 生成的 PrometheusRule。每个 AlertingRule 实例都会在同一命名空间中生成 PrometheusRule 对象,该对象始终是 openshift-monitoring 命名空间。 |
5.1.7. .status.prometheusRule
- 描述
- PrometheusRule 是此 AlertingRule 生成的 PrometheusRule。每个 AlertingRule 实例都会在同一命名空间中生成 PrometheusRule 对象,该对象始终是 openshift-monitoring 命名空间。
- 类型
-
object
- 必填
-
name
-
属性 | 类型 | 描述 |
---|---|---|
|
| 所引用的 PrometheusRule 的名称。 |