prometheus设置表达式触发告警

2023-05-19 19:53:52 浏览数 (3)

Prometheus 是一个开源监控系统,通过设置警报规则来实现对指标变化的监控。要在 Prometheus 中设置一个表达式值变动 50% 触发告警,你需要创建一个 alert 规则。

假设你要监控的指标是 example_metric,可以使用以下方法创建告警规则:

  1. 首先,在 Prometheus 的配置文件(通常是 prometheus.yml)中,为 alert 规则创建一个规则文件的路径。例如:
代码语言:javascript复制
rule_files:
  - "alert_rules.yml"
  1. 接下来,在 alert_rules.yml 文件中定义告警规则。这里我们需要用到 absrate 函数,以便计算指标值的变动百分比:
代码语言:javascript复制
groups:
- name: example_alerts
  rules:
  - alert: ExampleMetricChange
    expr: |
      abs(
        (rate(example_metric[5m]) - rate(example_metric[10m])) / rate(example_metric[10m])
      ) > 0.5
    for: 5m
    labels:
      severity: critical
    annotations:
      summary: "Example metric changed more than 50% in the last 5 minutes"
      description: "Example metric has changed by more than 50% in the last 5 minutes (current value: {{ $value }})."

在这个示例中,我们使用了 rate 函数来计算 example_metric 在 5 分钟和 10 分钟滚动窗口内的变化速率。然后我们计算了这两个速率之间的差值,并将其除以 10 分钟内的速率来计算百分比变化。最后,我们使用 abs 函数确保结果是一个正数。

如果表达式值变动超过 50%,则告警将在 5 分钟内持续触发。告警的标签和注释可以根据需要进行修改。

  1. 保存并重新加载 Prometheus 配置,以使更改生效。

现在,当 example_metric 的值在 5 分钟内变动超过 50% 时,Prometheus 将触发一个告警。你可以根据需要配置告警的接收器,例如使用 Alertmanager。

0 人点赞