複合条件モニター

概要

複合条件モニターは、個別モニターを組み合わせて 1 つのモニターにし、さらに詳細なアラート条件を定義します。

既存のモニターを選択して、複合条件モニターを作成します。たとえば、モニター A とモニター B とします。次に、A && B などのブール演算子を使用してトリガー条件を設定します。複合条件モニターは、個別モニターが同時に複合条件モニターのトリガー条件を真にする値を持つときにトリガーします。

複合条件の例

構成の目的上、複合条件モニターは構成モニターに依存しません。複合条件モニターの通知ポリシーは、構成モニターのポリシーに影響することなく変更できます。その逆も同様です。さらに、複合条件モニターを削除しても、構成モニターは削除されません。複合条件モニターは他のモニターを所有せずに、その結果を使用するだけです。複数の複合条件モニターが同じ個別モニターを参照することもあります。

  • 個別モニター構成モニター非複合条件モニター という用語はすべて、複合条件モニターがそのステータスを計算するために使用するモニターを指します。
  • 複合条件結果には、共通のグループ化が必要です。共通のグループ化がないモニターを選択した場合、式で選択したモニターが複合条件結果にならない場合があります。
  • 複合条件モニターは、他の複合条件モニターに基づくことはできません。

モニターの作成

Datadog で複合条件モニターを作成するには、メインナビゲーションを使用して次のように移動します: Monitors –> New Monitor –> Composite

モニターの選択とトリガー条件の設定

モニターの選択

複合条件モニターで使用する個別モニターを最大 10 個まで選択できます。異なるアラートタイプのモニターでもかまいません (シンプルアラートのみ、マルチアラートのみ、または両方の組み合わせ)。複合条件モニターを個別モニターとして使用することはできません。最初のモニターを選択すると、UI にそのアラートタイプと現在のステータスが表示されます。

マルチアラートモニターを選択すると、UI にはモニターの group-by 節と、現在レポートされている一意のソースの数が表示されます (例: Returns 5 host groups)。マルチアラートモニターを組み合わせる場合、この情報は自然にペアになるモニターを選択するのに役立ちます。

複合条件の例

同じグループを持つモニターを選択する必要があります。そうしなかった場合、UI には、このような複合条件モニターは決してトリガーしない旨の警告が表示されます。

複合条件の共通グループ

同じグループのマルチアラートモニターを選択した場合でも、モニターに共通のレポートソース (共通のグループ化とも呼ばれる) がない場合、Group Matching Error が表示されることがあります。共通のレポートソースがない場合、Datadog は複合条件モニターのステータスを計算できず、トリガーしません。 ただし、警告を無視して、とにかくモニターを作成することは_可能_です。詳細については、複合条件モニターが共通の報告元ソースを選択する方法を参照してください。

警告が表示されないように 2 つ目のモニターを選択すると、Trigger when フィールドにデフォルトのトリガー条件 a && b が挿入され、提案された複合条件モニターのステータスが表示されます。

トリガー条件を設定する

Trigger when フィールドに、ブール演算子を使用して目的のトリガー条件を記述します。個別モニターは、フォーム内のラベル (abc など) で識別されます。括弧を使用して演算子の優先度を制御すると、複雑な条件を作成できます。

以下はどれも有効なトリガー条件です。

!(a && b)
a || b && !c
(a || b) && (c || d)

高度なアラート条件

No Data

複合条件モニターがデータなしの状態にあることを Do not notify(通知しない)か Notify(通知する)かを選択します。ここでどちらを選択しても、個別モニターの Notify no data 設定には影響しませんが、複合条件がデータなしでアラートを出すためには、個別モニターと複合モニターの両方をデータが欠落していることを Notify(通知する)に設定する必要があります。

その他のオプション

高度なアラートオプション (自動解決など) の詳細な手順については、モニターコンフィギュレーションページを参照してください。

通知

For instructions on using template variables from a composite monitor’s constituent monitors in your notifications, see composite monitor variables. For detailed instructions on the Configure notifications and automations section, see the Notifications page.

API

API を使用している場合、複合条件モニターのクエリはモニター ID を使用しているサブモニターについて定義されます。

たとえば、2 つの非複合条件モニターに次のクエリと ID があるとします。

"avg(last_1m):avg:system.mem.free{role:database} < 2147483648" # Monitor ID: 1234
"avg(last_1m):avg:system.cpu.system{role:database} > 50" # Monitor ID: 5678

上記のモニターを組み合わせた複合条件モニターのクエリは、"1234 && 5678""!1234 || 5678" などになります。

複合条件モニターの仕組み

このセクションでは、いくつかのサンプルを使用してトリガー条件が計算される方法と、さまざまなシナリオで受け取るアラートの数について説明します。

トリガー条件の計算

複合条件モニターには 4 種類のステータスがあり、そのうち 3 種類はアラート対象です。

ステータスアラート対象重大度
Alert4 (最も重大)
Warn3
No Data2
Ok1 (最も重大ではない)

使用されているブール演算子 (&&||!) は、複合条件モニターステータスのアラート対象を操作するものです。

  • A && B がアラート対象である場合、結果は A と B 間の最も重大ではないステータスとなります。
  • A || B がアラート対象である場合、結果は A と B 間の最も重大なステータスとなります。 
  • ANo Data の場合、!ANo Data
  • A がアラート対象の場合、!AOK 
  • A がアラート対象でない場合、!AAlert

2 つの個別モニター(A および B)を考えます。次の表は、トリガー条件 (&& または ||) を与えられた複合条件モニター、および個別モニターにさまざまなステータスが与えられた場合の複合条件モニターの結果ステータスです。アラート対象かどうかは、T または F で示されます。

モニター Aモニター B条件通知データなし複合条件ステータスアラートがトリガーされるか?
Alert (T)Warn (T)A && BWarn (T)
Alert (T)Warn (T)A || BAlert (T)
Alert (T)Ok (F)A && BOK (F)
Alert (T)Ok (F)A || BAlert (T)
Warn (T)Ok (F)A && BOK (F)
Warn (T)Ok (F)A || BWarn (T)
データなし (T)Warn (T)A && Bデータなし (T)
データなし (T)Warn (T)A || BWarn (T)
データなし (T)Warn (T)A && B最後の既知データ
データなし (T)Warn (T)A || BWarn (T)
データなし (T)OK (F)A && BOK (F)
データなし (T)OK (F)A || B最後の既知データ
データなし (T)OK (F)A && BOK (F)
データなし (T)OK (F)A || Bデータなし (T)
データなし (T)データなし (T)A && Bデータなし (T)
データなし (T)データなし (T)A || Bデータなし (T)

: 複合条件の notify_no_data が false で、サブモニターの評価結果がその複合条件に対して No Data ステータスになった場合、複合条件は代わりに最後の既知の状態を使用します。

複合条件とダウンタイム

複合条件モニターとその個別モニターは互いに独立しています。

複合条件モニターでのダウンタイム

A || Bの条件を持つ 2 つの個別モニターからなる複合条件モニター C を考えてみましょう。複合条件モニターにダウンタイムを作成すると、C からの通知のみが抑制されます。

モニター A または B がそれぞれのモニター構成でサービスやチームに通知する場合、複合条件 C のダウンタイムは A または B によって引き起こされた通知をミュートすることはありません。A または B からの通知をミュートするには、これらのモニターにダウンタイムを設定します。

複合条件モニターで使用している個別モニターでのダウンタイム

複合条件モニター内で使用されている個々のモニター A にダウンタイムを作成しても、複合条件モニターはミュートされません。

例えば、ダウンタイムが発生すると、モニター A、特にそのグループ env:staging はミュートされます。グループ env:staging がアラート対応状態になると、個々のモニターから来る通知は抑制され、複合条件モニターはアラート通知を送信します。

アラートの数

受け取るアラートの数は、個別モニターのアラートタイプによって異なります。 すべての個別モニターがシンプルアラートなら、複合条件モニターもシンプルアラートタイプになります。A および B のクエリがすべて同時に true の場合に、複合条件モニターは 1 つの通知をトリガーします。

個別モニターが 1 つでもマルチアラートなら、複合条件モニターもマルチアラートです。同時にいくつのアラートが送信されるかは、複合条件モニターが使用しているマルチアラートモニターが 1 つか複数かに依存します。

共通の報告元ソース

多くのマルチアラートモニターを使用する複合条件モニターでは、個別モニターの共通の報告元ソースのみが考慮されます。

マルチアラートの例

モニター A および B がマルチアラートで、ホスト別にグループ化されているシナリオで考えてみましょう。

  • host:web01 から host:web05 のホストはモニター A のレポートを作成しています。
  • host:web04 から host:web09 のホストはモニター B のレポートを作成しています。

複合条件モニターは、共通ソース (web04web05) のみ を考慮します。1 回の評価サイクルで最大 2 つのアラートを受信できます。

異なるグループ名の共通グループ評価

複合条件モニターはタグ (web04) のみを参照し、タグキー (host) は参照しません。 上記の例に、単一の報告元ソース service:web04 を持つ service によってグループ化されたマルチアラートモニター C が含まれている場合、複合条件モニターは web04ABC 間の単一の共通の報告元ソースと見なします。

2 つ以上のディメンションのあるモニターグループ

2 つ以上のタグで分割されたマルチアラートモニターの場合、モニターグループはタグの組み合わせ全体に対応します。 たとえば、モニター 1device,host に基づくマルチアラートであり、モニター 2host に基づくマルチアラートである場合、複合条件モニターはモニター 1 とモニター 2 を組み合わせることができます。

書き込み通知

ただし、host,url に基づくマルチアラート、モニター 3 を考えると、モニター 1 とモニター 3 の組み合わせは、グルーピングが大きく異なるために、複合条件の結果にならない可能性があります。

書き込み通知

その他の参考資料