2

我想在 Prometheus alert.rules 定义中使用条件运算符来设置特定的严重性。例如,如果环境是生产环境,我想将严重性设置为关键,否则设置另一个值。

就像是:

- alert: CPU load
  expr: expression_used_to_check_load
  for: 15m
  labels:
     severity: if $labels.env == prd -> severity = critical else something else
  annotations:
     summary: Just a summary
     description: "Just a description"
4

2 回答 2

0

您可以根据环境以不同的方式配置页面的接收器,而不是在严重性本身中配置它。

- match: {owner: 'MYTEAM'}
    receiver: 'blackhole'
    routes:
    - match: {severity: 'critical', env: 'staging'}
      receiver: 'myteam-warn'
    - match: {severity: 'critical', env: 'prd'}}
      receiver: 'myteam-page'

可以不同地配置不同的接收器。 myteam-warn可能只是向您发送一封电子邮件,而myteam-page可能会触发一个页面。

于 2021-11-02T15:37:57.307 回答
0

您可以将规则一分为二:

- alert: CPU load
  expr: expression_used_to_check_load and {env=="prd"}
  for: 15m
  labels:
    severity: critical
  annotations:
    summary: Just a summary
    description: "Just a description"
- alert: CPU load
  expr: expression_used_to_check_load and {env!="prd"}
  for: 15m
  labels:
    severity: warning
  annotations:
    summary: Just a summary
    description: "Just a description"
于 2021-10-04T11:56:51.153 回答