kubernetes - prometheus alertmanager 规则的自动标签
问题描述
我正在使用prometheus-community/prometheus图表
我想将以下标签自动添加到任何警报管理器规则触发
- 环境=产品
- 集群=项目-prod-eks
这样我就不会手动将这些标签添加到每个警报规则中。
- alert: NGINXTooMany400s
expr: 100 * ( sum( nginx_ingress_controller_requests{status=~"4.+"} ) / sum(nginx_ingress_controller_requests) ) > 5
for: 1m
labels:
severity: warning
env: prod
cluster: project-prod-eks <---------------HOW to inject them?
annotations:
description: Too many 4XXs
summary: More than 5% of all requests returned 4XX, this requires your attention
这样我就可以做类似的事情
- alert: NGINXTooMany400s
expr: 100 * ( sum( nginx_ingress_controller_requests{status=~"4.+"} ) / sum(nginx_ingress_controller_requests) ) > 5
for: 1m
labels:
severity: warning
annotations:
description: Too many 4XXs on {{ $labels.env }} / {{ $labels.cluster }} <----- THIS
summary: More than 5% of all requests returned 4XX, this requires your attention
有任何想法吗?
解决方案
您可以添加external_labels
到您的prometheus.yml:
global:
# The labels to add to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
env: prod
cluster: project-prod-eks
社区图表在values.yml中有它:
serverFiles:
prometheus.yml:
global:
external_labels:
foo: bar
...
推荐阅读
- kubernetes - NGINX 入口到 Microk8s 裸机集群未按预期工作
- python - 导入 pyscipopt 失败
- azure - centos azure vm上的neo4j连接被拒绝错误
- string - 如何检查字符串是否仅包含 Postscript 中的数字
- python - 如何在 python 中为不同的环境加载 .env 文件?
- javascript - 如何更好地使用 .flatMap()、.map() 和 .filter() 在 Javascript 中迭代和过滤嵌套数组
- amazon-web-services - Amazon Quicksight - 是否可以在 Quicksight 中调用 API?
- android - 如何将按钮添加到 Firebase 消息通知?
- python - Django - 使用 pip 安装“Bootstrap4”后,settings.py 出现语法错误
- sql - 我们如何读取 varchar 列,取出整数部分并添加新列,使用脚本递增该整数部分