×
描述

AlertingRule 代表一组用户定义的 Prometheus 规则组,其中包含告警规则。此资源是集群管理员基于 OpenShift 中平台监控堆栈(即部署到 openshift-monitoring 命名空间的 Prometheus 实例)记录的指标创建告警的支持方法。您可以使用它根据来自 node_exporter(提供机器级指标,如 CPU 使用率)或 kube-state-metrics(提供有关 Kubernetes 使用情况的指标)等组件的指标创建 OpenShift 未提供的自定义告警规则。此 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 个次要版本(以较长者为准)。

类型

对象

必需
  • spec

规格

属性 类型 描述

apiVersion

字符串

APIVersion 定义此对象表示的版本化模式。服务器应将识别的模式转换为最新的内部值,并可能拒绝无法识别的值。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

kind

字符串

Kind 是一个字符串值,表示此对象表示的 REST 资源。服务器可以从客户端提交请求的端点推断出这一点。不能更新。使用驼峰命名法。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

metadata

ObjectMeta

标准对象的元数据。更多信息:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

spec

对象

spec 描述此 AlertingRule 对象的期望状态。

status

对象

status 描述此 AlertOverrides 对象的当前状态。

.spec

描述

spec 描述此 AlertingRule 对象的期望状态。

类型

对象

必需
  • groups

属性 类型 描述

groups

数组

groups 是分组告警规则的列表。规则组是 Prometheus 并行处理规则的单位。单个组中的所有规则共享配置的评估间隔。组中的所有规则都将在此间隔内一起按顺序处理,并且所有规则都将被处理。通常将相关的告警规则分组到单个 AlertingRule 资源中,并在该资源中将密切相关的告警或只是具有相同间隔的告警分组到各个组中。您也可以自由地创建仅包含单个规则组的 AlertingRule 资源,但请注意,如果组非常大或具有非常复杂的查询表达式需要评估,这可能会对 Prometheus 的性能产生影响。将非常复杂的规则分散到多个组中以允许它们并行处理也是一个常见的用例。

groups[]

对象

RuleGroup 是按顺序评估的告警规则列表。

.spec.groups

描述

groups 是分组告警规则的列表。规则组是 Prometheus 并行处理规则的单位。单个组中的所有规则共享配置的评估间隔。组中的所有规则都将在此间隔内一起按顺序处理,并且所有规则都将被处理。通常将相关的告警规则分组到单个 AlertingRule 资源中,并在该资源中将密切相关的告警或只是具有相同间隔的告警分组到各个组中。您也可以自由地创建仅包含单个规则组的 AlertingRule 资源,但请注意,如果组非常大或具有非常复杂的查询表达式需要评估,这可能会对 Prometheus 的性能产生影响。将非常复杂的规则分散到多个组中以允许它们并行处理也是一个常见的用例。

类型

数组

.spec.groups[]

描述

RuleGroup 是按顺序评估的告警规则列表。

类型

对象

必需
  • name

  • rules

属性 类型 描述

interval

字符串

interval 是组中规则的评估频率。如果未指定,则默认为在 Prometheus 中配置的 global.evaluation_interval,该值本身默认为 30 秒。您可以通过检查平台 Prometheus 配置来检查此值是否已从集群上的默认值修改:该资源中的相关字段是:spec.evaluationInterval

name

字符串

name 是组的名称。

rules

数组

rules 是按顺序评估的告警规则列表。Prometheus 可能会并行处理规则组,但单个组内的规则始终按顺序处理,并且所有规则都将被处理。

rules[]

对象

Rule 描述一个告警规则。请参见 Prometheus 文档: - https://www.prometheus.io/docs/prometheus/latest/configuration/alerting_rules

.spec.groups[].rules

描述

rules 是按顺序评估的告警规则列表。Prometheus 可能会并行处理规则组,但单个组内的规则始终按顺序处理,并且所有规则都将被处理。

类型

数组

.spec.groups[].rules[]

描述

Rule 描述一个告警规则。请参见 Prometheus 文档: - https://www.prometheus.io/docs/prometheus/latest/configuration/alerting_rules

类型

对象

必需
  • alert

  • expr

属性 类型 描述

alert

字符串

alert 是告警的名称。必须是有效的标签值,即可以包含任何 Unicode 字符。

annotations

对象(字符串)

要添加到每个告警的注释。这些是可用于存储较长附加信息的值,您不会在其上进行查询,例如告警描述或运行手册链接。

expr

整数或字符串

expr 是要评估的 PromQL 表达式。每个评估周期,它都会在当前时间进行评估,所有生成的时序数据都会变成待处理或触发的警报。它通常是一个表示 PromQL 表达式的字符串,例如:mapi_current_pending_csr > mapi_max_pending_csr。在极少数情况下,它可以是一个简单的整数,例如简单的“1”,如果目的是创建一个始终触发的警报。这有时用于创建始终触发的“看门狗”警报,以确保警报管线正常运行。

for

字符串

for 是警报在第一次返回结果后被认为是已触发的时间段。尚未触发足够长时间的警报被认为是待处理的。

labels

对象(字符串)

要为每个警报添加或覆盖的标签。警报的 PromQL 表达式的结果将产生一组现有的警报标签,在评估表达式后,对于此处指定的任何标签(其名称与该集合中的标签名称相同),此处的标签将胜出并覆盖先前的值。这些标签通常应该是简短的标识值,可能有助于查询。一个常见的例子是警报严重性,其中在labels键下设置severity: warning

.status

描述

status 描述此 AlertOverrides 对象的当前状态。

类型

对象

属性 类型 描述

observedGeneration

整数

observedGeneration 是您已处理的最新代变化。

prometheusRule

对象

prometheusRule 是为此 AlertingRule 生成的 PrometheusRule。每个 AlertingRule 实例都会在相同的命名空间(始终是 openshift-monitoring 命名空间)中生成一个 PrometheusRule 对象。

.status.prometheusRule

描述

prometheusRule 是为此 AlertingRule 生成的 PrometheusRule。每个 AlertingRule 实例都会在相同的命名空间(始终是 openshift-monitoring 命名空间)中生成一个 PrometheusRule 对象。

类型

对象

必需
  • name

属性 类型 描述

name

字符串

引用的 PrometheusRule 的名称。

API 端点

提供以下 API 端点:

  • /apis/monitoring.openshift.io/v1/alertingrules

    • GET:列出 AlertingRule 类型的对象

  • /apis/monitoring.openshift.io/v1/namespaces/{namespace}/alertingrules

    • DELETE:删除 AlertingRule 集合

    • GET:列出 AlertingRule 类型的对象

    • POST:创建 AlertingRule

  • /apis/monitoring.openshift.io/v1/namespaces/{namespace}/alertingrules/{name}

    • DELETE:删除 AlertingRule

    • GET:读取指定的 AlertingRule

    • PATCH:部分更新指定的 AlertingRule

    • PUT:替换指定的 AlertingRule

  • /apis/monitoring.openshift.io/v1/namespaces/{namespace}/alertingrules/{name}/status

    • GET:读取指定的 AlertingRule 的状态

    • PATCH:部分更新指定的 AlertingRule 的状态

    • PUT:替换指定的 AlertingRule 的状态

/apis/monitoring.openshift.io/v1/alertingrules

HTTP 方法

GET

描述

列出 AlertingRule 类型的对象

表 1. HTTP 响应
HTTP 代码 响应正文

200 - OK

AlertingRuleList 模式

401 - 未授权

/apis/monitoring.openshift.io/v1/namespaces/{namespace}/alertingrules

HTTP 方法

DELETE

描述

删除 AlertingRule 集合

表 2. HTTP 响应
HTTP 代码 响应正文

200 - OK

Status 模式

401 - 未授权

HTTP 方法

GET

描述

列出 AlertingRule 类型的对象

表 3. HTTP 响应
HTTP 代码 响应正文

200 - OK

AlertingRuleList 模式

401 - 未授权

HTTP 方法

POST

描述

创建 AlertingRule

表 4. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何被对象静默删除的未知字段,并且将忽略解码器遇到的除最后一个重复字段之外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 5. 主体参数
参数 类型 描述

body

AlertingRule 模式

表 6. HTTP 响应
HTTP 代码 响应正文

200 - OK

AlertingRule 模式

201 - 已创建

AlertingRule 模式

202 - 已接受

AlertingRule 模式

401 - 未授权

/apis/monitoring.openshift.io/v1/namespaces/{namespace}/alertingrules/{name}

表 7. 全局路径参数
参数 类型 描述

name

字符串

AlertingRule 的名称

HTTP 方法

DELETE

描述

删除 AlertingRule

表 8. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

表 9. HTTP 响应
HTTP 代码 响应正文

200 - OK

Status 模式

202 - 已接受

Status 模式

401 - 未授权

HTTP 方法

GET

描述

读取指定的 AlertingRule

表 10. HTTP 响应
HTTP 代码 响应正文

200 - OK

AlertingRule 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 AlertingRule

表 11. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何被对象静默删除的未知字段,并且将忽略解码器遇到的除最后一个重复字段之外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 12. HTTP 响应
HTTP 代码 响应正文

200 - OK

AlertingRule 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 AlertingRule

表 13. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何被对象静默删除的未知字段,并且将忽略解码器遇到的除最后一个重复字段之外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 14. 主体参数
参数 类型 描述

body

AlertingRule 模式

表 15. HTTP 响应
HTTP 代码 响应正文

200 - OK

AlertingRule 模式

201 - 已创建

AlertingRule 模式

401 - 未授权

/apis/monitoring.openshift.io/v1/namespaces/{namespace}/alertingrules/{name}/status

表 16. 全局路径参数
参数 类型 描述

name

字符串

AlertingRule 的名称

HTTP 方法

GET

描述

读取指定的 AlertingRule 的状态

表 17. HTTP 响应
HTTP 代码 响应正文

200 - OK

AlertingRule 模式

401 - 未授权

HTTP 方法

PATCH

描述

部分更新指定的 AlertingRule 的状态

表 18. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何被对象静默删除的未知字段,并且将忽略解码器遇到的除最后一个重复字段之外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 19. HTTP 响应
HTTP 代码 响应正文

200 - OK

AlertingRule 模式

401 - 未授权

HTTP 方法

PUT

描述

替换指定的 AlertingRule 的状态

表 20. 查询参数
参数 类型 描述

dryRun

字符串

如果存在,则表示不应持久化修改。无效或无法识别的 dryRun 指令将导致错误响应,并且不会进一步处理请求。有效值为:- All:将处理所有 dry run 阶段

fieldValidation

字符串

fieldValidation 指示服务器如何处理请求 (POST/PUT/PATCH) 中包含未知或重复字段的对象。有效值为:- Ignore:这将忽略任何被对象静默删除的未知字段,并且将忽略解码器遇到的除最后一个重复字段之外的所有重复字段。这是 v1.23 之前的默认行为。- Warn:这将通过标准警告响应标头为每个从对象中删除的未知字段和遇到的每个重复字段发送警告。如果没有任何其他错误,请求仍将成功,并且只会保留任何重复字段中的最后一个。这是 v1.23+ 的默认值 - Strict:如果任何未知字段将从对象中删除,或者存在任何重复字段,这将使请求失败并返回 BadRequest 错误。服务器返回的错误将包含遇到的所有未知和重复字段。

表 21. 主体参数
参数 类型 描述

body

AlertingRule 模式

表 22. HTTP 响应
HTTP 代码 响应正文

200 - OK

AlertingRule 模式

201 - 已创建

AlertingRule 模式

401 - 未授权