为不同环境设置 prometheus 警报

时间:2021-05-14 22:16:39

标签: prometheus

我想为 prod 和 dev 设置或多或少相同的警报(例如:高 CPU 使用率) IE。我想看到 [prod] 我的警报和 [dev] 我的警报。 我可以为 prod 定义单独的警报,为 dev 定义单独的警报。它会正常工作。但是最好有一些类似警报模板的东西,并且只为 prod 和 dev 更改标题和实例。 可能吗?

1 个答案:

答案 0 :(得分:1)

通常您只需一个提醒即可:

  1. 使用 or 语句:
groups:
- name: alerts
  rules:
  - alert: MyAlert
    expr: my_metric{env="dev"} < 10 or my_metric{env="prod"} < 1
  1. 将阈值定义为指标:
groups:
- name: thresholds
  interval: 1h # you do not need to evaluate these often
  rules:
  - record: my_metric:alert_threshold
    expr: 1
    labels:
      env: prod
  - record: my_metric:alert_threshold
    expr: 10
    labels:
      env: dev

- name: alerts
  rules:
  - alert: MyAlert
    expr: my_metric < my_metric:alert_threshold

标签和注释值可以使用 golang 模板语法 (some examples) 进行模板化。但是,据我所知,没有任何东西(第三方工具除外)模板 for 值。例如,我使用 Ansiblejinja2 模板在循环中呈现一些规则并部署 Prometheus 配置。

相关问题