指標ベースのアラート ポリシーの動作

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このドキュメントでは、アライメント期間と期間の設定によって条件がトリガーされるタイミングを決定する方法、アラート ポリシーによって複数の条件を組み合わせる方法、アラート ポリシーによって欠落しているデータポイントを置き換える方法について説明します。また、ポリシーに対する対応待ちインシデントの最大数、インシデントごとの通知数、通知の遅延の原因についても説明します。

このコンテンツは、ログベースのアラート ポリシーには適用されません。ログベースのアラート ポリシーの詳細については、ログのモニタリングをご覧ください。

アライメント期間と長さの設定

アライメント期間と期間枠は、アラート ポリシーの条件を指定するときに設定する 2 つのフィールドです。このセクションでは、これらのフィールドの意味を簡潔に説明します。

アライメント期間

アラート ポリシーの条件では、調整された値がしきい値と比較されます。アライメント期間とは、特定の時点から振り返った過去の一定の間隔です。整列指定子は、各点をその間隔に集約して 1 つの調整値に変える関数です。たとえば、アライメント期間が 5 分である午後 1 時の場合、アライメント期間には午後 12 時 55 分から午後 1 時の間に受信したサンプルが含まれます。午後 1 時 1 分では、アライメント期間は 1 分スライドされ、午後 12 時 56 分から午後 1 時 1 分の間に受信したサンプルが含まれます。

Google Cloud コンソール

アライメント フィールドは、[New condition] ダイアログの一部である [ローリング ウィンドウ] メニューと [ローリング ウィンドウ関数] メニューで構成します。

API

アライメント フィールドは、MetricThreshold および MetricAbsence 構造の aggregations.alignmentPeriod および aggregations.perSeriesAligner フィールドを設定して構成します。

アラート ポリシーの条件に対するアライメント期間の影響を示すために、サンプリング期間 1 分の指標でモニタリングする条件について考えてみます。アライメント期間を 5 分、整列指定子を sum に設定するとします。時系列のアライメントされた値が少なくとも 3 分間で 2 より大きい場合、条件は「met」または「active」として示されます。この例では、条件が毎分評価されると仮定します。

次の図は、条件の連続した評価を示しています。

アライメント期間の影響を示す図。

図の各行は 1 回の条件の評価を示しています。時系列データが表示されます。アライメント期間内のポイントは青い点で示され、古い点はすべて黒で表示されます。各行にはアライメントされた値と、この値がしきい値の 2 より大きいかどうかが表示されます。start というラベルの付いた行の場合、アライメントされた値は 1 に計算され、しきい値より小さくなります。次の評価で、アライメント期間のサンプルの合計が 2 になります。3 番目の評価では、合計が 3 となり、しきい値を上回ります。条件評価機能が期間時間枠のタイマーも開始します。

時間枠

期間(時間枠)は、単一の測定値によって条件が満たされることを防ぐために使用します。たとえば、指標しきい値条件の長さが 5 分の場合、5 分間隔で調整されたすべての測定値がしきい値を超える場合にのみ、条件が満たされます。ポリシーの条件が 1 つの場合は、その条件が満たされたときにインシデントが開始され、通知が送信されます。

Google Cloud コンソール

時間枠を構成するには、[トリガーを構成] ステップの [再テストの時間枠] フィールドを使用します。

API

期間時間枠を構成するには、MetricThreshold 構造と MetricAbsence 構造の duration フィールドを設定します。

上の図は、条件の 3 つの評価を示しました。start + 2 minutes の時点で、アライメントされた値はしきい値を超えています。ただし、期間時間枠が 3 分に設定されているため、条件は満たされません。次の図では、条件の次の評価の結果を示しています。

期間時間枠の影響を示す図。

アライメントされた値は start + 2 minutes の時点でしきい値より大きい場合でも、アライメントされた値は 3 分間しきい値を超えるまで条件は満たされません。これは start + 5 minutes の時点で発生します。

前の例では、わかりやすくするために、複数の時系列のアライメント済みデータポイントを 1 つの測定にまとめる可能性を排除しています。その測定値は、条件が満たされているかどうかを判定するためにしきい値と比較されます。

測定が条件を満たさないたびに、期間時間枠はリセットされます。この動作は以下の例に示されています。

: このアラート ポリシーには、5 分間の時間枠を指定する 1 つの条件が含まれています。

HTTP レスポンスのレイテンシが 2 秒を超え、
レイテンシが 5 分間のしきい値を超える場合、
インシデントを開き、サポートチームにメールを送信します。

次の一連の流れは、期間時間枠が条件の評価にどのように影響するかを示しています。

  1. HTTP レイテンシが 2 秒未満である。
  2. 次の連続する 3 分間で、HTTP レイテンシが 2 秒を超える。
  3. 次の測定で、レイテンシが 2 秒未満になるため、条件によって期間時間枠がリセットされる。
  4. 次の連続する 5 分間で HTTP レイテンシが 2 秒を超え、条件が満たされる。

    ポリシーには条件が 1 つあるため、条件が満たされるとインシデントが開始されて、通知が送信されます。

期間時間枠を、誤検出を最小限に抑えるのに十分な長さを確保しながら、インシデントがタイムリーに開かれるように十分に短く設定する。

アライメント期間と期間時間枠を選択する

アラート ポリシーの条件は、一定の頻度で評価されます。アラインメント期間と期間時間枠に対して行う選択は、条件が評価される頻度を決定しません。

図は、アライメント期間によって、整列指定子と結合するデータサンプルの数が決定されることを示しています。多数のサンプルを組み合わせるには、長い期間を選択します。間隔を 1 つのサンプルに限定するには、短い期間を選択します。対照的に、期間時間枠では、値がしきい値を超えて条件が満たされるまでの時間を指定します。アライメントされた一つの値がしきい値より大きい場合に条件を満たすようにするには、期間時間枠をゼロに設定します。

複数の条件を持つポリシー

1 つの アラート ポリシーには、最大 6 個の条件を含めることができます。

Cloud Monitoring API を使用している場合や、アラート ポリシーに複数の条件がある場合は、インシデントが開始されるタイミングを指定する必要があります。複数条件の組み合わせ方を構成するには、次のいずれかを行います。

Google Cloud コンソール

コンバイナ オプションは、[複数条件トリガー] ステップで構成します。

API

コンバイナ オプションは、AlertPolicy 構造の [combiner] フィールドで構成します。

次の表では、Google Cloud コンソールの設定、Cloud Monitoring API での同等の値、各設定の説明を示します。

Google Cloud コンソール
ポリシーによって値がトリガーされます
Cloud Monitoring API
combiner の値
意味
いずれかの条件が満たされている OR いずれかのリソースがいずれかの条件を満たすと、インシデントが開かれます。
条件ごとに異なる
リソースであっても
すべての条件が満たされている

(デフォルト)
AND インシデントは、各条件が満たされた場合に開かれます。異なるリソースによってこれらの条件が満たされた場合でも、インシデントは開かれます。
すべての条件が満たされている AND_WITH_MATCHING_RESOURCE 同じリソースが各条件を満たすと、インシデントが開かれます。この設定は、最も厳密な組み合わせ選択です。

このコンテキストで、met という用語は、条件の構成が true と評価されることを意味します。たとえば、構成が Any time series is greater than 10 for 5 minutes の場合で、このステートメントが true と評価されたとき、条件は満たされています。

vm1 と vm2 の 2 つの VM インスタンスを含む Google Cloud プロジェクトについて考えます。また、次の 2 つの条件でアラート ポリシーを作成するとします。

  • CPU usage is too high という名前の条件は、インスタンスの CPU 使用量をモニタリングします。この条件は、いずれかのインスタンスの CPU 使用率が 1 分間で 100 ミリ秒/秒を超えた場合に満たされます。
  • Excessive utilization という名前の条件は、インスタンスの CPU 使用率をモニタリングします。この条件は、いずれかのインスタンスの CPU 使用率が 1 分間で 60% を超えた場合に満たされます。

最初は、両方の条件が false と評価されることを前提としています。

次に、vm1 の CPU 使用量が 1 分間 100 ミリ秒/秒を超えたとします。CPU 使用率が 1 分間のしきい値を超えているため、条件 CPU usage is too high を満たします。条件が「いずれかの条件を満たしている」と組み合わされている場合、条件が満たされるためインシデントが作成されます。条件が「すべての条件を満たしている」または「各条件で異なるリソースであってもすべての条件を満たしている」と組み合わされている場合、インシデントは作成されません。これらの組み合わせを選択している場合は、両方の条件が満たされる必要があります。

次に、vm1 の CPU 使用率が 100 ミリ秒 / 秒を超えた状態が継続し、vm2 の CPU 使用率が 1 分間で 60% を超えたとします。その結果、両方の条件が満たされます。条件がどのように組み合わされているかによって、次のようになります。

  • いずれかの条件を満たしている: リソースが条件を満たすとインシデントが作成されます。この例では、vm2 は条件 Excessive utilization を満たします。

    vm2 によって条件 CPU usage is too high が満たされると、インシデントも作成されます。条件 CPU usage is too high が満たされる vm1 と vm2 は別々のイベントであるため、インシデントが作成されます。

  • 各条件で異なるリソースであってもすべての条件を満たしている: 両方の条件が満たされるため、インシデントが作成されます。

  • すべての条件を満たしている: 同じリソースですべての条件が満たされることが必要なため、インシデントは作成されません。この例では、vm1 で CPU usage is too high が満たされ、vm2 で Excessive utilization が満たされるため、インシデントは作成されません。

部分的な指標データ

時系列データが到着しない、またはデータが遅延すると、Monitoring ではデータが欠落していると分類されます。データが欠落していると、ポリシーによってアラートされなくなり、インシデントが閉じられなくなる可能性があります。サードパーティのクラウド プロバイダからのデータ到着の遅延は 30 分に及ぶ場合があり、5~15 分の遅延が最も一般的です。非常に長い遅延(期間時間枠より長い)では、条件が「不明」状態になる可能性があります。最終的にデータが到着したときに、Monitoring で条件の最近の履歴の一部が失われている場合があります。データが到着した後では遅延の証拠がないため、時系列データを後で調べてもこの問題が明らかにならないことがあります。

Google Cloud コンソール

データの到着が停止した場合に Monitoring で指標しきい値の条件を評価する方法を構成できます。たとえば、インシデントが対応待ちで、予想される測定値が届かない場合、Monitoring でインシデントを開いたままにするか、すぐにクローズしますか?同様に、データの到着が停止し、対応待ちのインシデントがない場合、インシデントをオープンしますか?最後に、データの到着が停止した後、インシデントをオープンにしておく期間はどれくらいですか?

データが到着しなくなったときに Monitoring で指標しきい値の条件を評価する方法を指定する 2 つの構成可能なフィールドがあります。

  • 欠落データを置換する値を Monitoring が決める仕組みを構成するには、[条件トリガー] ステップで設定した [評価の欠落データ] フィールドを使用します。再テストの時間枠が [再テストなし] に設定されている場合、このフィールドは無効になります。

  • データの受信が止まってから対応待ちのインシデントを閉じるまで Monitoring が待機する時間を構成するには、[Incident autoclose duration] フィールドを使用します。[通知] ステップで自動クローズの期間を設定します。デフォルトの自動クローズ期間は 7 日間です。

欠落データ フィールドに関するさまざまなオプションは次のとおりです。

Google Cloud コンソール
[評価データの不足] フィールド
まとめ 詳細
欠落データがない 対応待ちのインシデントはオープンのままです。
新しいインシデントはオープンされません。

条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントは対応待ちのままになります。インシデントが対応待ちで、データが送られてこない場合、自動クローズ タイマーは 15 分以上の時間をおいて開始されます。タイマーの期限が切れると、インシデントはクローズされます。

条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。

欠落データポイントが、ポリシーに違反する値として扱われる 対応待ちのインシデントはオープンのままです。
新しいインシデントをオープンできます。

条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントは対応待ちのままになります。インシデントが対応待ちで、自動クローズ期間に 24 時間を加えた期間にデータが到着しない場合、インシデントはクローズされます。

条件が満たされない場合は、この設定により、指標しきい値の条件が metric-absence condition のように動作します。再テストの時間枠で指定された時間内にデータを受信しない場合は、条件が満たされたと評価されます。条件が 1 つのアラート ポリシーでは、条件が満たされるとインシデントが開始されます。

欠落データポイントが、ポリシーに違反しない値として扱われる 対応待ちのインシデントはクローズされます。
新しいインシデントはオープンされません。

条件が満たされている場合、データの受信が停止すると、その条件は満たされなくなります。この条件のインシデントが対応待ちの場合、インシデントはクローズされます。

条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。

API

データの到着が停止した場合に Monitoring で指標しきい値の条件を評価する方法を構成できます。たとえば、インシデントが対応待ちで、予想される測定値が届かない場合、Monitoring でインシデントを開いたままにするか、すぐにクローズしますか?同様に、データの到着が停止し、対応待ちのインシデントがない場合、インシデントをオープンしますか?最後に、データの到着が停止した後、インシデントをオープンにしておく期間はどれくらいですか?

データが到着しなくなったときに Monitoring で指標しきい値の条件を評価する方法を指定する 2 つの構成可能なフィールドがあります。

  • 欠落データを置換する値を Monitoring が決める仕組みを構成するには、MetricThreshold 構造の evaluationMissingData フィールドを使用します。duration フィールドがゼロの場合、このフィールドは無視されます。

  • データが到着しなくなった後に対応待ちのインシデントを閉じるまで Monitoring が待機する時間を構成するには、AlertStrategy 構造の autoClose フィールドを使用します。

欠落データ フィールドに関するさまざまなオプションは次のとおりです。

API
      evaluationMissingData フィールド
概要 詳細
EVALUATION_MISSING_DATA_UNSPECIFIED 対応待ちのインシデントはオープンのままです。
新しいインシデントはオープンされません。

条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントは対応待ちのままになります。インシデントが対応待ちで、データが送られてこない場合、自動クローズ タイマーは 15 分以上の時間をおいて開始されます。タイマーの期限が切れると、インシデントはクローズされます。

条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。

EVALUATION_MISSING_DATA_ACTIVE 対応待ちのインシデントはオープンのままです。
新しいインシデントをオープンできます。

条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントは対応待ちのままになります。インシデントが対応待ちで、自動クローズ期間に 24 時間を加えた期間にデータを受信しない場合、インシデントはクローズされます。

条件が満たされない場合は、この設定により、指標しきい値の条件が metric-absence condition のように動作します。「期間」フィールドで指定された時間内にデータを受信しない場合は、条件が満たされたと評価されます。条件が 1 つのアラート ポリシーでは、条件が満たされるとインシデントが開始されます。

EVALUATION_MISSING_DATA_INACTIVE 対応待ちのインシデントはクローズされます。
新しいインシデントはオープンされません。

条件が満たされている場合、データの受信が停止すると、その条件は満たされなくなります。この条件のインシデントが対応待ちの場合、インシデントはクローズされます。

条件が満たされていない場合、データの到着が停止したとき、条件は引き続き満たされません。

次のいずれかの方法で、データの欠落による問題を最小限に抑えることができます。

  • サードパーティ クラウド プロバイダに連絡して、指標収集のレイテンシを低減する方法を確認してください。
  • 条件で使用する期間時間枠を長くします。期間時間枠を拡張すると、アラート ポリシーの応答性が低下するというデメリットがあります。
  • 次のような、収集の遅延が少ない指標を選択します。

    • Monitoring エージェントの指標(特に、エージェントがサードパーティのクラウドの VM インスタンス上で実行されている場合)。
    • カスタム指標(データを Cloud Monitoring に直接書き込む場合)。
    • ログベースの指標(ログ収集が遅延しない場合)。

詳細については、モニタリング エージェントの概要カスタム指標の使用ログベースの指標をご覧ください。

ポリシーごとの通知とインシデント

Monitoring でインシデントが作成されてアラート ポリシーの通知が送信されないようにするため、そのポリシーは無効にすることをおすすめします。別の方法では、スヌーズを作成して、ポリシーを検索条件に含めることもできます。スヌーズが有効の場合、そのポリシーでは、インシデントの作成も通知の送信も行われません。

ポリシーが有効で、有効なスヌーズの条件と一致しない場合は、インシデントが作成され、通知が送信されることがあります。このセクションでは、ポリシーごとの対応待ちインシデント数の上限と、同じインシデントに複数の通知が表示されるタイミングついて説明します。

ポリシーごとの対応待ちインシデント数

アラート ポリシーは多くのリソースに適用できるため、リソース全体に影響を及ぼす問題が発生してポリシーがトリガーされると、リソースごとに対応待ちのインシデントが生じる可能性があります。インシデントは、条件が満たされている時系列ごとに開かれます。

システムの過負荷を防ぐため、1 つのポリシーの対応待ちインシデントの数は 5,000 に制限されています。

たとえば、2,000(または 20,000)個の Compute Engine インスタンスに適用されるポリシーがあり、各インスタンスでアラート条件が満たされるとします。Monitoring では、対応待ちインシデントの数を 5,000 に制限しています。ポリシーに対する対応待ちのインシデントが閉じられるまで、満たされている残りの条件はどれも無視されます。

インシデントごとの通知数

デフォルトでは、時系列によって条件が満たされると、通知が送信されます。次のいずれかに該当する場合、複数の通知を受け取ることがあります。

  • 条件は、複数の時系列をモニタリングします。

  • ポリシーには複数の条件が含まれている。

    • すべての条件を満たす場合は、条件が満たされるたびに、ポリシーによって通知が送信され、インシデントが作成されます。たとえば、2 つの条件を持つポリシーがあり、各条件が 1 つの時系列をモニタリングしているとします。このポリシーがトリガーされると、2 つの通知が送信され、2 つのインシデントが表示されます。

    • いずれかの条件が満たされる: 条件の新しい組み合わせが満たされるたびに、ポリシーによって通知が送信されます。たとえば、条件 A が満たされ、インシデントがオープンになり、通知が送信されるとします。後続の測定で条件 A と条件 B の両方が満たされたときに、そのインシデントがオープンのままの場合は、別の通知が送信されます。

Cloud Monitoring API を使用して作成されたアラート ポリシーでは、条件が満たされたときと条件が満たされなくなったときに通知されます。デフォルトの場合、Google Cloud コンソールを使用して作成されたアラート ポリシーでは、インシデントがオープンされたときに通知されます。インシデントのクローズ時には、通知されません。インシデントのクローズ時の通知は、有効にすることもできます。

無効化されたアラート ポリシーの通知

アラート ポリシーを無効にしても、ポリシーは条件の評価を続けます。ただし、インシデントは作成されず、通知も送信されません。

無効化されたポリシーを有効にした場合、Monitoring により最新の時間枠でのすべての条件の値が検査されます。直近の期間には、ポリシーが有効になる前、途中、および後に取得されたデータが含まれる場合があります。ポリシーは、時間枠が長い場合でも、再開直後にトリガーされる可能性があります。

たとえば、特定のプロセスをモニタリングするアラート ポリシーがあり、このポリシーを無効にしたとします。翌週にはプロセスが停止し、ポリシーが無効のため通知されません。プロセスを再起動してすぐにアラート ポリシーを有効にすると、Monitoring はプロセスが過去 5 分間稼働していないことを認識し、インシデントをオープンにします。

アラート ポリシーを無効にした後、対応待ちの問題をクローズするには、対応するインシデントをミュートします。この処理の詳細については、インシデントのミュートをご覧ください。

有効なスヌーズの条件に一致するポリシーの通知

アラート ポリシーによる短い間隔での通知の送信を防ぐには、ポリシーを無効にするのではなく、スヌーズを作成することをおすすめします。たとえば、仮想マシン(VM)のメンテナンスを行う前に、スヌーズを作成し、スヌーズの条件にインスタンスをモニタリングするアラート ポリシーを追加できます。

アラート ポリシーの条件がトリガーされ、そのポリシーがアクティブなスヌーズの条件と一致する場合、インシデントは作成されず、通知は送信されません。スヌーズの期限が切れると、ポリシーはインシデントを作成し、通知を送信できます。

通知レイテンシ

通知レイテンシは、問題が最初に発生したときからポリシーがトリガーされるときまでの遅延です。

次のイベントと設定が、通知レイテンシ全体に影響します。

  • 指標収集の遅延: Cloud Monitoring が指標値を収集するために必要とする時間。Google Cloud の値の場合、ほとんどの指標は収集後 60 秒間表示されません。ただし、その遅れは指標によって異なります。アラート ポリシーの計算には、さらに 60~90 秒の遅延が発生します。AWS CloudWatch 指標の場合、表示に関わる遅延が数分になることがあります。稼働時間チェックでは、これは(時間枠の最後から)平均で 2 分になります。

  • 期間時間枠: 条件用に構成された時間枠。 時間枠全体にわたって条件が真である場合にのみ、条件が満たされます。たとえば、時間枠を 5 分に設定すると、イベントが最初に発生したときから少なくとも 5 分後に通知の遅延が発生します。

  • 通知の到着時間: メールや SMS などの通知チャネル自体に、ネットワークやその他の遅延(配信される内容とは関係なく)が発生することがあり、場合によっては分単位になります。SMS や Slack などの一部のチャネルでは、メッセージが配信される保証はありません。

次のステップ