クエリによる監視を行う

クエリによる監視は、Mackerel に投稿されたラベル付きメトリックに対しての監視を行う機能です。2024 年 2 月時点では、この機能はパブリックベータ版として提供されています。

Mackerel にラベル付きメトリックを投稿する方法については、Mackerel にラベル付きメトリックを投稿する をご覧ください。

クエリによる監視を設定する

画面左側メニューの監視ルールより監視ルールを追加のボタンをクリックします。 「クエリによる監視」のタブをクリックすると、以下の項目が表示されますので、各項目に値・名称を記述して作成ボタンをクリックします。

  • 監視対象: エディタに監視対象メトリックを取得するためのクエリを入力してください。クエリが正しく解釈でき、計算対象メトリックが取得できた場合は右側の preview にグラフが描画されます。
  • アラートの発生条件:Warning, Critical の閾値を設定してください。
  • 監視ルール名:本監視定義の名前を記述してください。
  • 通知の再送間隔:アラートの状態が、指定された時間を超えても変化がない場合、再度通知します。
  • 監視するメトリックの遅延時間:監視するメトリックの反映時間の差を吸収するために、監視対象の時刻を遅延させます。

監視ルールで利用可能な PromQL の機能については、サポートされている PromQL の機能 をご覧ください。

クエリによる監視の仕様

  • 監視間隔は 1 分となります。
  • 監視項目として設定可能なクエリは、グラフの系列を複数指定することができます。グラフの系列が複数指定された場合、それぞれの系列に対してアラートの閾値を検証し、アラートの発生を判定します。そのため、1 つの監視ルールに対して複数のアラートが発生することがあります。
  • 監視ルール名にはラベルのテンプレート構文を利用できます。
  • クエリの評価は常に 20 分間の範囲で行われます。そのため、範囲ベクトルセレクタの制約事項により、範囲ベクトルセレクタで広い範囲([1w] など)を指定した場合、クエリの評価が正しく行われず unknown アラートが発生することがあります。

テンプレート構文

監視ルール名にはラベルのテンプレート構文を利用できます。テンプレート構文は {{}} で囲まれた部分にメトリックのラベルのキーを指定することで、アラートが発生した際のラベルの値を監視ルール名に埋め込むことができます。

例えば、監視ルール名を以下のように設定します。

http.server.request.duration [{{http.request.method}}] {{http.route}}

このとき、http.request.method=GEThttp.route=/api/v1/users のラベルを持つメトリックに対してアラートが発生した場合、監視ルール名は以下のようになり、アラート通知に表示されます。

http.server.request.duration [GET] /api/v1/users

この機能を利用することで、どのメトリックでアラートが発生したのか瞬時に把握できます。