我用如下表达式定义了一些警报:
sum(rate(some_error_metric[1m])) BY (namespace,application) > 10
sum(rate(some_other_error_metric[1m])) BY (namespace,application) > 10
...
当前,当我们的任何应用程序以每分钟 10 以上的速率发出这些指标时,上述警报就会触发。
我希望能够为每个应用程序指定不同的阈值,而不是硬编码阈值 10。
例如application_1
,应该以每分钟 10 次的速度application_2
发出警报,应该以每分钟 20 次的速度发出警报,等等。
如果不为每个应用程序复制警报,这是否可能?
这个stackoverflow问题:Promethues alerting rules中的动态标签值表明使用记录规则可以实现我想要的,但是遵循这个问题的唯一答案中建议的模式会导致记录Prometheus似乎没有的规则能够解析:
- record: application_1_warning_threshold
expr: warning_threshold{application="application_1"} 10
- record: application_2_warning_threshold
expr: warning_threshold{application="application_2"} 20
...