次のような式でいくつかのアラートを定義しました。
sum(rate(some_error_metric[1m])) BY (namespace,application) > 10
sum(rate(some_other_error_metric[1m])) BY (namespace,application) > 10
...
上記のアラートは現在、いずれかのアプリケーションがこれらのメトリックを 1 分あたり 10 を超える速度で発行すると発生します。
10 のしきい値をハードコーディングするのではなく、アプリケーションごとに異なるしきい値を指定できるようにしたいと考えています。
たとえばapplication_1
、1 分あたり 10 のレートでアラートを出すapplication_2
必要がある、1 分あたり 20 のレートでアラートを出す必要がある、などです。
これは、アプリケーションごとにアラートを複製せずに可能ですか?
このstackoverflow question: Dynamic label values in Prometheus 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
...