PrometheusRules 配置

一个 PrometheusRule 定义了一组 Prometheus 告警或记录规则。

本节假设你熟悉监控组件如何协同工作。要了解更多信息,请参阅本节

在 Rancher UI 中创建 PrometheusRules

从 v2.5.4 版起可用

前提条件:需要安装监控应用程序。

要在 Rancher UI 中创建规则组:

  1. 点击集群资源管理器>监控,并点击Prometheus 规则
  2. 单击 创建。
  3. 输入一个组名称
  4. 配置规则。在 Rancher UI 中,我们希望一个规则组包含告警规则或记录规则,但不能同时包含。关于填写表格的帮助,请参考下面的配置选项。
  5. 点击创建

结果:告警可以被配置为向接收器发送通知。

关于 PrometheusRule 自定义资源

当你定义一个规则(在 PrometheusRule 资源的 RuleGroup 中声明)时,规则本身的规格包含标签,这些标签被 Alertmanager 用来计算哪个路由应该接收这个 Alert。例如,一个标签为 team: front-end 的告警将被发送到所有与该标签相匹配的路由。

Prometheus 规则文件被保存在 PrometheusRule 自定义资源中。一个 PrometheusRule 允许你定义一个或多个 RuleGroups。每个 RuleGroup 由一组 Rule 对象组成,每个对象可以代表一个告警或记录规则,有以下字段:

  • 新告警或记录的名称
  • 新告警或记录的 PromQL 表达式
  • 应该附加到告警或记录的标签,以识别它(例如,集群名称或严重程度)。
  • 注释,编码任何额外的重要信息,需要显示在告警的通知上(如摘要,描述,消息,运行手册的 URL,等等)。这个字段对于记录规则来说是不需要的。

关于可以指定哪些字段的更多信息,请查看Prometheus Operator.

使用 Prometheus 对象中的标签选择器字段 ruleSelector 来定义你想装入 Prometheus 中的规则文件。

关于例子,请参考 Prometheus 文档中的记录规则告警规则。

配置

Rancher v2.5.4

Rancher v2.5.4 引入了通过在 Rancher UI 上填写表格来配置 PrometheusRules 的功能。

规则组

字段描述
组名称组的名称。在一个规则文件中必须是唯一的。
覆盖组的时间间隔该组中的规则被评估的时间,以秒为单位。

告警规则

告警规则允许你根据 PromQL(Prometheus Query Language)表达式来定义告警条件,并向外部服务发送关于发射告警的通知。

字段描述
告警名称告警的名称。必须是一个有效的标签值。
等待 Fire 的时间持续时间,单位是秒。告警一旦被返回到这个时间段就被认为是 Fire 了。还没有 Fire 足够长的时间的告警被认为是待定的。
PromQL 表达式要评估的 PromQL 表达式。Prometheus 将在每个评估周期评估这个 PromQL 表达式的当前值,所有产生的时间序列将成为 pending/firing 告警。欲了解更多信息,请参考 Prometheus 文档或我们的 PromQL 表达式示例。标签
标签为每个告警添加或重写的标签。
严重性启用后,标签将被附加到告警或记录上,通过严重性等级来识别它。
严重程度标签值Critical, warning, 或 none
注释注释是一组信息标签,可用于存储更长的附加信息,例如警报描述或运行手册链接。一个 runbook 是一组关于如何处理告警的文档。注释值可以是模板化的。

记录规则

记录规则允许你预先计算经常需要的或计算成本高的 PromQL(Prometheus 查询语言)表达式,并将其结果保存为一组新的时间序列。

字段描述
时间序列名称要输出的时间序列的名称。必须是一个有效的 metric 名称。
PromQL 表达式要评估的 PromQL 表达式。Prometheus 将在每个评估周期评估这个 PromQL 表达式的当前值,结果将被记录为一组新的时间序列,其指标名称由 ‘record’ 给出。 关于表达式的更多信息,请参考Prometheus 文档或我们的 PromQL 表达式示例。标签
标签在存储结果之前要添加或覆盖的标签。

Rancher v2.5.0-v2.5.3

对于 Rancher v2.5.0-v2.5.3,PrometheusRules 必须用 YAML 配置。关于例子,请参考 Prometheus 文档中的记录规则告警规则。