2017-06-17 9 views
2

私は現在、アラートマネージャーの既存のアラート設定を再設計しています。ほんの小さな問題がありますが、私はアラートマネージャーを完全に理解していません。Prometheus alertmanager処理の順

私は以下の構成をとっています。 「barfooOne」 重要度:アラートが送信されます受信機に「警告」

routes: 

match: 
    severity:"warning" 
receiver: "hipchat-teamX" 

match_re: 
    application:"(foo|bar)" 
receiver: "hipchat-teamX" 

match_re: 
    application:"(barfoo.*)" 
receiver: "hipchat-teamY" 

その後アラートは、次の値、アプリケーションでプロメテウスから発射されましたか?なぜ?

アラートマネージャはアップダウン構造を処理しますか?

いつルート(ルート)の新しい子を宣言することに決めましたか?

答えて

0

私はGitHubの開発者の助けを借りて解決策を見つけました。

ANDおよびOR宣言を含むif文と同様に、configの処理が次のように表示されることがあります。

Alertmanagerは、設定を上下左右の原則に適用します。アップダウンがORステートメントに類似している場合、通常のifステートメントで使用します。

左から右に行くときは、ifコマンドのAND文と比較できます。

さらに、最初のステートメントが一致し、 'AND'パーツが宣言されていない場合、alertmanagerは、それ以上の一致を見ずにアラートを受信者にプッシュすることに注意してください。したがって、上記の例では、プロメテウスが以下のラベル(警告:severity: "warning"、アプリケーション: "barfoo")で警告を発すると、警告はhipchat-teamXに送信されます。

次の点に注意してください。アプリケーションのラベル値は、hipchat-teamYのルートと一致します。それでなぜそれがそのルートに送られないのですか?答えはそれほど難しくありません。最初のものが一致し、宣言されたサブルーチンがないため、他の一致を探すのを止めるからです。

ただし、alertmanagerに下のコードのような設定がある場合、アラートは受信者 'hipchat-teamY'に送信されます。

routes: 

match: 
    severity:"warning" 
receiver: "hipchat-teamX" 

    routes: 
    match_re: 
    application:"(barfoo.*)" 
    receiver: "hipchat-teamY" 

match_re: 
    application:"(foo|bar)" 
receiver: "hipchat-teamX" 

match_re: 
    application:"(barfoo.*)" 
receiver: "hipchat-teamY" 

それはもう少し高度にするために、asumeのプロメテウスは、次のラベル{深刻度:「クリティカル」、アプリケーション:「barfoo」}で新しいアラートを送信します。以下の設定では、警告はhipchat-teamXにルーティングされます。

ラベル{重大度: "critical"、アプリケーション: "foo"}の場合、アラートはhipchat-teamYに送信されます。

routes: 

match: 
    severity:"warning" 
receiver: "hipchat-teamX" 

    routes: 
    match_re: 
    application:"(barfoo.*)" 
    receiver: "hipchat-teamY" 

    match_re: 
    application:"(foo|bar)" 
    receiver: "hipchat-teamX" 

match: 
    severity:"critical" 
receiver: "hipchat-teamY" 

    routes: 
    match_re: 
    application:"(barfoo.*)" 
    receiver: "hipchat-teamX" 

    match_re: 
    application:"(foo|bar)" 
    receiver: "hipchat-teamY" 

この説明は、同じ問題または質問を受けている他の人に役立つことを願っています。

0

私も新しいので、あなたのシナリオでは、continueがデフォルトでfalseであるため、2番目の受信者にアラートが送信されます。

関連する問題