このドキュメントでは、アライメント期間と再テスト ウィンドウによって条件が満たされるタイミングを判断する方法、アラート ポリシーによって複数の条件を組み合わせる方法、アラート ポリシーによって欠落しているデータポイントを置き換える方法について説明します。また、ポリシーに対する対応待ちインシデントの最大数、インシデントごとの通知数、通知の遅延の原因についても説明します。
このコンテンツは、ログベースのアラート ポリシーには適用されません。ログベースのアラート ポリシーの詳細については、ログのモニタリングをご覧ください。
アライメント期間と再テスト ウィンドウ
Cloud Monitoring は、アラート ポリシーの条件が満たされているかどうかを判断する際に、アライメント期間と再テスト ウィンドウを評価します。
アライメント期間
アラート ポリシーで時系列データをモニタリングする前に、アラート ポリシーが評価するデータが一定の間隔で配置されるように正規化する必要があります。正則化プロセスをアライメントといいます。alignment
アライメントには 2 つのステップがあります。
時系列を定期的な時間間隔に分割する(データのバケット化とも呼ばれる)。間隔がアライメント期間です。
アライメント期間のポイントに対して単一の値を計算します。 その単一ポイントの計算方法を選択します。すべての値を合計することも、平均を計算することも、最大値を使用することもできます。データポイントを結合する関数は「整列指定子」と呼ばれます。組み合わせの結果は、アライメントされた値と呼ばれます。
アライメントの詳細については、アライメント: 系列内の正則化をご覧ください。
たとえば、アライメント期間が 5 分である午後 1 時の場合、アライメント期間には午後 12 時 55 分から午後 1 時の間に受信したサンプルが含まれます。午後 1 時 1 分では、アライメント期間は 1 分スライドされ、午後 12 時 56 分から午後 1 時 1 分の間に受信したサンプルが含まれます。
Monitoring は、次のようにアライメント期間を構成します。
Google Cloud コンソール
アライメント期間を構成するには、[アラートの条件] ページで次のフィールドの値を選択します。
- ローリング ウィンドウ: 評価する時間の範囲を指定します。
- ローリング ウィンドウ関数: データポイントのウィンドウに対して実行する数学関数を指定します。
使用可能な関数についての詳細は、API リファレンスの Aligner
をご覧ください。一部の整列指定子関数では、データの整列と別の種類の指標への変換の両方が行われます。詳細については、種類、タイプ、変換をご覧ください。
API
アライメント期間は、MetricThreshold
および MetricAbsence
構造の aggregations.alignmentPeriod
および aggregations.perSeriesAligner
フィールドを設定して構成します。
使用可能な関数についての詳細は、API リファレンスの Aligner
をご覧ください。一部の整列指定子関数では、データの整列と別の種類の指標への変換の両方が行われます。詳細については、種類、タイプ、変換をご覧ください。
アラート ポリシーの指標しきい値条件に対するアライメント期間の影響を示すために、サンプリング期間 1 分の指標でモニタリングする条件について考えてみます。アライメント期間を 5 分、整列指定子を sum
に設定するとします。また、アライメントされた時系列の値が少なくとも 3 分間で 2 より大きい場合に条件が満たされ、1 分ごとに条件が評価されると仮定します。この例では、アライメント期間は 2 分、次のセクションで説明する再テスト ウィンドウは 3 分です。次の図は、条件の連続した評価を示しています。
図の各行は 1 回の条件の評価を示しています。時系列データが表示されます。アライメント期間内のポイントは青い点で示され、古い点はすべて黒で表示されます。各行にはアライメントされた値と、この値がしきい値の 2 より大きいかどうかが表示されます。start
というラベルの付いた行の場合、アライメントされた値は 1 に計算され、しきい値より小さくなります。次の評価で、アライメント期間のサンプルの合計が 2 になります。3 番目の評価では、合計が 3 になります。この値はしきい値より大きいため、再テスト ウィンドウのタイマーが開始されます。
再テスト ウィンドウ
アラート ポリシーの条件には再テストの時間枠があります。これは、単一の測定値または予測が原因で条件が満たされることを防ぎます。たとえば、条件の再テスト ウィンドウが 15 分に設定されているとします。以下では、タイプに基づいて条件の動作を説明します。
- 指標しきい値条件は、1 つの時系列で 15 分間隔で調整されたすべての測定値がしきい値を超えた場合に条件を満たします。
- 指標の不在条件は、15 分間隔で時系列にデータが到着しない場合に満たされます。
- 予測条件は、15 分間のウィンドウ中に生成されたすべての予測が、時系列が予測ウィンドウ内でしきい値をまたぐと予測した場合に満たされます。
条件が 1 つのポリシーの場合、条件が満たされたときにインシデントがオープンになり、通知が送信されます。条件が満たされている間、これらのインシデントはオープンの状態のままになります。
Google Cloud コンソール
再テストの時間枠を構成するには、[アラート トリガーを構成] ステップの [再テスト ウィンドウ] フィールドを使用します。
API
再テスト ウィンドウを構成するには、MetricThreshold
構造と MetricAbsence
構造に duration
というフィールドを設定します。
上の図は、指標しきい値条件の 3 つの評価を示しました。start + 2 minutes
の時点で、アライメントされた値はしきい値を超えています。ただし、再テスト ウィンドウが 3 分に設定されているため、条件は満たされません。次の図では、条件の次の評価の結果を示しています。
アライメントされた値は start + 2 minutes
の時点でしきい値より大きい場合でも、アライメントされた値は 3 分間しきい値を超えるまで条件は満たされません。このイベントは start + 5 minutes
の時点で発生します。
測定または予測が条件を満たさないたびに、再テスト ウィンドウはリセットされます。この動作は以下の例に示されています。
例: このアラート ポリシーには、5 分間の再テスト ウィンドウを指定する 1 つの指標しきい値条件が含まれています。
HTTP レスポンスのレイテンシが 2 秒を超え、
レイテンシが 5 分間のしきい値を超える場合、
インシデントを開き、サポートチームにメールを送信します。次の一連の流れは、再テスト ウィンドウが条件の評価にどのように影響するかを示しています。
- HTTP レイテンシは 2 秒未満です。
- 次の連続する 3 分間で、HTTP レイテンシが 2 秒を超える。
- 次の測定で、レイテンシが 2 秒未満になるため、条件によって再テスト ウィンドウがリセットされる。
次の連続する 5 分間で HTTP レイテンシが 2 秒を超え、条件が満たされる。
アラート ポリシーに条件が 1 つあるため、条件が満たされたときに Monitoring によって通知が送信されます。
再テスト ウィンドウを、誤検出を最小限に抑えるのに十分な長さを確保しながら、インシデントがタイムリーに開かれるように十分に短く設定します。
アライメント期間と再テスト ウィンドウの設定に関するベスト プラクティス
アライメント期間によって、整列指定子と組み合わせられるサンプルの数が決まります。
指標タイプのアライメント期間の最小値は、その指標タイプのサンプリング期間です。たとえば、指標タイプが 300 秒ごとにサンプリングされる場合、アライメント期間は 300 秒以上である必要があります。ただし、5 つのサンプルを結合する場合は、アライメント期間を 5 * 300 秒(1,500 秒)に設定します。
アライメント期間の最大値は、指標タイプの取り込み遅延を 24 時間から差し引いた値です。たとえば、指標の取り込み遅延が 6 時間の場合、アライメント期間の最大値は 18 時間です。
再審査時間枠を使用して、アラートの応答性を指定します。たとえば、指標の不在条件で再テスト ウィンドウを 20 分に設定した場合、条件が満たされる前の 20 分間はデータが存在しません。アラート ポリシーの応答性を向上させるには、再テスト ウィンドウを小さい値に設定します。指標しきい値条件の場合、アラート ポリシーのレスポンスを最も高くするには、再審査時間枠を 0 に設定します。単一のアライメントされた値は、これらの種類の条件が満たされます。
アラート ポリシーの条件は、一定の頻度で評価されます。アラインメント期間と再テスト ウィンドウに対して行う選択は、条件が評価される頻度を決定しません。
複数の条件を持つポリシー
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 が決める仕組みを構成するには、[条件トリガー] ステップで設定した [欠落データの評価] フィールドを使用します。再テスト ウィンドウが [再テストなし] に設定されている場合、このフィールドは無効になります。
再テスト ウィンドウは、Cloud Monitoring API の duration と呼ばれるフィールドです。
データの受信が止まってから対応待ちのインシデントを閉じるまで Monitoring が待機する時間を構成するには、[Incident autoclose duration] フィールドを使用します。[通知] ステップで自動クローズの期間を設定します。デフォルトの自動クローズ期間は 7 日間です。
欠落データ フィールドに関するさまざまなオプションは次のとおりです。
Google Cloud コンソール [欠落データの評価] フィールド |
概要 | 詳細 |
---|---|---|
欠落データがない | 対応待ちのインシデントはオープンのままです。 新しいインシデントはオープンされません。 |
条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントはオープンのままになります。インシデントが対応待ちで、データが送られてこない場合、自動クローズ タイマーは 15 分以上の時間をおいて開始されます。タイマーの期限が切れると、インシデントはクローズされます。 条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。 |
欠落データポイントが、ポリシーに違反する値として扱われる | 対応待ちのインシデントはオープンのままです。 新しいインシデントをオープンできます。 |
条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントはオープンのままになります。インシデントが対応待ちで、自動クローズ期間に 24 時間を加えた期間にデータが到着しない場合、インシデントはクローズされます。 条件が満たされない場合は、この設定により、指標しきい値の条件が |
欠落データポイントが、ポリシーに違反しない値として扱われる | 対応待ちのインシデントはクローズされます。 新しいインシデントはオープンされません。 |
条件が満たされている場合、データの受信が停止すると、その条件は満たされなくなります。この条件のインシデントが対応待ちの場合、インシデントはクローズされます。 条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。 |
API
データの到着が停止した場合に Monitoring で指標しきい値の条件を評価する方法を構成できます。たとえば、インシデントが対応待ちで、予想される測定値が届かない場合、Monitoring でインシデントをオープンのままにするか、すぐにクローズしますか?同様に、データの到着が停止し、対応待ちのインシデントがない場合、インシデントをオープンしますか?最後に、データの到着が停止した後、インシデントをオープンにしておく期間はどれくらいですか?
データが到着しなくなったときに Monitoring で指標しきい値の条件を評価する方法を指定する 2 つの構成可能なフィールドがあります。
欠落データを置換する値を Monitoring が決める仕組みを構成するには、
MetricThreshold
構造のevaluationMissingData
フィールドを使用します。duration
フィールドがゼロの場合、このフィールドは無視されます。データが到着しなくなった後に対応待ちのインシデントを閉じるまで Monitoring が待機する時間を構成するには、
AlertStrategy
構造のautoClose
フィールドを使用します。
欠落データ フィールドに関するさまざまなオプションは次のとおりです。
APIevaluationMissingData フィールド |
概要 | 詳細 |
---|---|---|
EVALUATION_MISSING_DATA_UNSPECIFIED |
対応待ちのインシデントはオープンのままです。 新しいインシデントはオープンされません。 |
条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントはオープンのままになります。インシデントが対応待ちで、データが送られてこない場合、自動クローズ タイマーは 15 分以上の時間をおいて開始されます。タイマーの期限が切れると、インシデントはクローズされます。 条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。 |
EVALUATION_MISSING_DATA_ACTIVE |
対応待ちのインシデントはオープンのままです。 新しいインシデントをオープンできます。 |
条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントはオープンのままになります。インシデントが対応待ちで、自動クローズ期間に 24 時間を加えた期間にデータを受信しない場合、インシデントはクローズされます。 条件が満たされない場合は、この設定により、指標しきい値の条件が |
EVALUATION_MISSING_DATA_INACTIVE |
対応待ちのインシデントはクローズされます。 新しいインシデントはオープンされません。 |
条件が満たされている場合、データの受信が停止すると、その条件は満たされなくなります。この条件のインシデントが対応待ちの場合、インシデントはクローズされます。 条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。 |
次のいずれかの方法で、データの欠落による問題を最小限に抑えることができます。
- サードパーティ クラウド プロバイダに連絡して、指標収集のレイテンシを低減する方法を確認してください。
- 条件で使用する再テスト ウィンドウを長くします。再テスト ウィンドウを長くすると、アラート ポリシーの応答性が低下するというデメリットがあります。
次のような、収集の遅延が少ない指標を選択します。
- Monitoring エージェントの指標(特に、エージェントがサードパーティのクラウドの VM インスタンス上で実行されている場合)。
- カスタム指標(データを Cloud Monitoring に直接書き込む場合)。
- ログベースの指標(ログエントリの収集が遅延しない場合)。
詳しくは、モニタリング エージェントの概要、ユーザー定義指標の概要、ログベースの指標をご覧ください。
Monitoring が通知を送信してインシデントを作成する場合
Cloud Monitoring は、時系列が条件を満たすと通知を送信します。通知は、すべての通知チャネルに送信されます。通知を特定のチャネルまたはポリシーのチャネルのサブセットに制限することはできません。
繰り返し通知を構成すると、アラート ポリシーの特定の通知チャネルに同じ通知が再送信されます。
次のいずれかに該当する場合、1 つのアラート ポリシーに関連する複数の固有の通知が送信されることがあります。
条件が複数の時系列をモニタリングする。
ポリシーに複数の条件が含まれている。この場合、受信する通知は、アラート ポリシーの複数条件のトリガーの値によって異なります。
すべての条件を満たす: すべての条件を満たす場合、条件が満たされた各時系列に対して、アラート ポリシーによって通知が送信され、インシデントが作成されます。
アラート ポリシーに複数の条件が含まれている場合、インシデントを 1 つだけ作成して 1 つの通知のみを送信するように Cloud Monitoring を構成することはできません。
いずれかの条件を満たしている: 時系列が条件を満たすと、アラート ポリシーによって通知が送信されます。
詳細については、複数の条件を持つポリシーをご覧ください。
Cloud Monitoring API を使用して作成されたアラート ポリシーでは、条件が満たされたときと条件が満たされなくなったときにも通知されます。 Google Cloud コンソールを使用して作成したアラート ポリシーは、動作を有効にしない限り、条件が満たされなくなったときに通知を送信しません。
Monitoring が通知を送信しない、またはインシデントを作成しない場合
次のような状況では、アラート ポリシーの条件が満たされても、Monitoring はインシデントの作成や通知の送信を行いません。
- アラート ポリシーが無効になっている。
- アラート ポリシーがスヌーズされている。
- Monitoring が、対応待ちインシデントの最大数の上限に達した。
無効化されたアラート ポリシー
Monitoring では、インシデントの作成や、無効化されたアラート ポリシーの通知の送信は行いません。ただし、Monitoring は、無効化されたアラート ポリシーの条件を引き続き評価します。
無効化されたポリシーを有効にした場合、Monitoring により最新の再テスト ウィンドウでのすべての条件の値が検査されます。 最新の再テスト ウィンドウには、ポリシーが有効になる前、途中、および後に取得されたデータが含まれる場合があります。無効化されたポリシーの条件は、ポリシーの再開直後に満たすことができます。これは、再テスト ウィンドウが長い場合でも同じです。
たとえば、特定のプロセスをモニタリングするアラート ポリシーがあり、このポリシーを無効にするとします。翌週にはプロセスが停止し、アラート ポリシーが無効のため通知されません。プロセスを再起動してすぐにアラート ポリシーを有効にすると、Monitoring はプロセスが過去 5 分間稼働していないことを認識し、インシデントをオープンにします。
無効化されたアラート ポリシーに関連するインシデントは、ポリシーの自動クローズ期間が終了するまでオープンのままになります。
スヌーズされたアラート ポリシー
モニタリングでは、スヌーズされたアラート ポリシーに対して通知を送信したり、インシデントを作成したりしません。アラート ポリシーが短い間隔でのみ通知を送信するのを防ぐには、アラート ポリシーをスヌーズすることをおすすめします。たとえば、仮想マシン(VM)のメンテナンスを行う前に、スヌーズを作成し、スヌーズの条件にインスタンスをモニタリングするアラート ポリシーを追加できます。
アラート ポリシーをスヌーズすると、モニタリングによってポリシーに関連する対応待ちのインシデントがすべてクローズされます。モニタリングは、スヌーズの期限が切れた後に新しいインシデントを開くことができます。詳しくは、通知とアラートのスヌーズをご覧ください。
通知と対応待ちのインシデントの制限事項
アラート ポリシーは多くのリソースに適用できるため、リソース全体に影響を及ぼす問題がアラート ポリシーによって各リソースのインシデントを開く可能性があります。インシデントは、条件が満たされている時系列ごとに開かれます。
システムの過負荷を防ぐため、1 つのポリシーの対応待ちインシデントの数は 1,000 に制限されています。
たとえば、2,000 個の Compute Engine インスタンスに適用されるポリシーがあり、各インスタンスでアラートの条件が満たされるとします。Monitoring では、対応待ちインシデントの数を 1,000 に制限しています。ポリシーに対する対応待ちのインシデントが閉じられるまで、満たされている残りの条件はどれも無視されます。
この制限により、1 つの通知チャンネルは一度に最大 1,000 件の通知を受信できます。アラート ポリシーに複数の通知チャンネルがある場合、この制限は各通知チャンネルに個別に適用されます。
レイテンシ
レイテンシとは、Monitoring が指標をサンプリングしてから、指標データポイントが時系列データとして表示されるまでの遅延を指します。レイテンシは通知の送信タイミングに影響します。たとえば、モニタリング対象指標のレイテンシが最大 180 秒の場合、アラート ポリシー条件が true と評価されてから最大 180 秒間、モニタリングによってインシデントが作成されません。詳しくは、指標データのレイテンシをご覧ください。
レイテンシに影響するイベントと設定は次のとおりです。
指標収集の遅延: Monitoring が指標値を収するために必要とする時間。Google Cloud の値の場合、ほとんどの指標は収集後 60 秒間表示されません。ただし、その遅れは指標によって異なります。アラート ポリシーの計算には、さらに 60~90 秒の遅延が発生します。AWS CloudWatch 指標の場合、表示に関わる遅延が数分になることがあります。稼働時間チェックでは、これは(再テスト ウィンドウの最後から)平均で 2 分になります。
再テスト ウィンドウ: 条件用に構成された時間枠。 再テスト ウィンドウ全体にわたって条件が真である場合にのみ、条件が満たされます。たとえば、再テスト ウィンドウを 5 分に設定すると、イベントが最初に発生したときから少なくとも 5 分後に通知の遅延が発生します。
通知の到着時間: メールや SMS などの通知チャンネル自体に、ネットワークやその他の遅延(配信される内容とは関係なく)が発生することがあり、場合によっては分単位になります。SMS や Slack などの一部のチャネルでは、メッセージが配信される保証はありません。
次のステップ
アラート ポリシーを作成する方法については、次のドキュメントをご覧ください。
アラート ポリシーの詳細については、サンプル ポリシーをご覧ください。