インシデントにラベルでアノテーションを付ける

このドキュメントでは、ユーザー定義のラベルを付けてインシデントを整理し、優先順位を付ける方法について説明します。これらのラベルはアラート ポリシーで構成され、アラート ポリシーとインシデントに一覧表示されます。構成によっては、特定の通知にラベルも一覧表示されます。

ラベルについて

ラベルは Key-Value ペアであり、時系列、アラート ポリシー、インシデント、通知に情報を添付するために使用されます。たとえば、時系列のラベルは、データの収集元の特定の仮想マシン(VM)インスタンスを識別する場合があります。ラベルはユーザー定義または事前定義のいずれかです。

ユーザー定義のラベル

ユーザー定義のラベルには、指定した情報が含まれます。これらのラベルには、静的または動的な値を指定できます。

ラベルのキーは小文字で始める必要があります。ラベルキーとラベル値の両方に使用できるのは、小文字、数字、アンダースコア、ダッシュのみです。

定義済みのラベル

事前定義されたラベルはリソース記述子に含まれます。これらのラベルは、時系列データの書き込み時に入力する必要があります。これらのラベルは、収集される指標または指標が書き込まれるリソースに関する情報を示します。たとえば、時系列のラベルは、仮想マシン(VM)、ゾーン、Google Cloud プロジェクト、デバイスタイプを識別します。Monitoring がその時系列に基づいてインシデントを作成すると、インシデントはこれらのラベルを継承します。

ラベルの表示方法

アラート ポリシーまたはインシデントのラベルは、インシデントの詳細ページアラート ポリシーの詳細ページ、および一部の通知で表示できます。

  • アラート ポリシー: 静的なユーザー定義ラベルは、[ユーザーラベル] セクションに一覧表示されます。動的なユーザー定義ラベルと事前定義のラベルは表示されません。
  • インシデント: 静的ユーザー定義ラベルはポリシーラベルセクションに一覧表示され、動的ユーザー定義ラベルは指標ラベルセクションに一覧表示されます。事前定義ラベルは、モニタリング対象リソースラベル指標ラベルのセクションに一覧表示されています。
  • 通知: 事前定義されたラベルとユーザー定義ラベルは、次の通知タイプで一覧表示されます。

    • メール
    • Google Chat
    • PagerDuty
    • Pub/Sub
    • Webhook

例: 動的な値を使用してユーザー定義ラベルを追加する

MQL を使用して、時系列データに基づいて値が動的に変更されるようにラベルを構成できます。たとえば、モニタリング対象の CPU 使用率指標の値に応じて値が変化する criticality ラベルをインシデントに付けます。

fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/utilization'
| group_by sliding(5m), [value_utilization_mean: mean(value.utilization)]
| map
    add[
      criticality:
        if(val() >= 90 '%', 'CRITICAL',
          if(val() >= 80 '%', 'WARNING',
            if(val() >= 70 '%', 'INFO', 'GOOD')))
    ]
| condition val() >= 70 '%'

次の図は、MQL クエリを使用するアラート ポリシーが、モニタリングする時系列データを処理する仕組みを示しています。

アラート ポリシーによってモニタリング対象時系列が処理される仕組みを示す図。

ポリシー ハンドラは、CPU 使用率データを処理し、条件が満たされるタイミングを示す時系列を出力します。上記の例では、CPU 使用率が 70% 以上になると、条件が満たされます。ポリシー ハンドラは入力時系列ごとに、次の 4 つの時系列のいずれかを生成できます。

出力の時系列名 条件が満たされました 説明
「Good」 × この時系列には、入力の時系列と同じラベルが付けられます。重大度ラベルはありません。
「Critical」 CPU 使用率が 90% 以上。出力時系列には、「Good」時系列と同じラベルと値「CRITICAL」の重大度ラベルがあります。
「Warning」 CPU 使用率が 80% 以上 90% 未満。出力時系列には、「Good」時系列と同じラベルと値「WARNING」の重大度ラベルがあります。
"INFO" CPU 使用率が 70% 以上 80% 未満。出力時系列には、「Good」時系列と同じラベルと値「INFO」の重大度ラベルがあります。

ポリシー ハンドラによって生成された時系列データは、インシデント マネージャーへの入力です。インシデント マネージャーは、インシデントが作成およびクローズされるタイミングを決定します。インシデントをクローズするタイミングを判断するために、インシデント マネージャーは、durationevaluationMissingData、および autoClose フィールドの値を使用します。

おすすめの方法

値が動的に設定されるラベルを作成する際、一度に最大 1 つのインシデントを開始させるには、次の操作を行います。

  • MetricThreshold オブジェクトで、次のフィールドのデフォルト値をオーバーライドします。

    • duration フィールド: ゼロ以外の値に設定します。
    • evaluationMissingData フィールド: データの受信が停止したときにインシデントがクローズされるように設定します。Cloud Monitoring API を使用する場合は、このフィールドを EVALUATION_MISSING_DATA_INACTIVE に設定します。Google Cloud コンソールを使用する場合は、フィールドを「条件に違反しない値として扱われる欠落しているデータポイント」に設定します。
  • AlertStrategy オブジェクトで、autoClose フィールドを最小値の 30 分に設定します。Cloud Monitoring API を使用する場合は、このフィールドを 30m に設定します。

詳細については、部分的な指標データをご覧ください。

インシデント フロー

アラート ポリシーの作成時に、CPU 使用率の測定値が 70% 未満であるとします。次のシーケンスは、インシデントの開始と終了の仕組みを示しています。

  1. CPU 使用率の測定値は 70% 未満であるため、ポリシー ハンドラは「Good」の時系列を生成し、インシデントは開かれません。

  2. 次に、CPU 使用率が 93% まで上昇するとします。ポリシー ハンドラは、「Good」時系列データの生成を停止し、「CRITICAL」時系列のデータの生成を開始します。

    インシデント マネージャーは、条件を満たす新しい「CRITICAL」時系列を確認し、インシデントを開始します。通知には、値が CRITICAL の重大度ラベルが設定されます。

  3. CPU 使用率が 75% に低下したとします。ポリシー ハンドラは、「CRITICAL」時系列の生成を停止し、「INFO」時系列の生成を開始します。

    インシデント マネージャーは、条件を満たす新しい「INFO」時系列を確認し、インシデントを開始します。通知には、値が INFO の重大度ラベルが設定されます。

    インシデント マネージャーは、「Critical」時系列のデータが届いていないこと、その時系列のインシデントが対応待ちであることを認識します。このポリシーは、データが到着しなくなったときにインシデントを閉じるように構成されているため、インシデント マネージャーは「Critical」時系列に関連付けられたインシデントを閉じます。したがって、重大度ラベルの値が INFO のインシデントのみが対応待ちのままになります。

  4. 最後に、CPU 使用率が 45% に低下するとします。この値はすべてのしきい値よりも小さいため、ポリシー ハンドラは「INFO」時系列の生成を停止し、「GOOD」時系列の生成を開始します。

    インシデント マネージャーは、「Info」時系列のデータが届いていないこと、その時系列のインシデントが対応待ちであることを認識します。ポリシーでは推奨設定が使用されているため、インシデントがクローズされます。

evaluationMissingData フィールドに推奨値を使用しない場合は、データの到着が停止しても対応待ちのインシデントは直ちにクローズされません。その結果、同じ入力時系列に複数の対応待ちのインシデントが表示されることがあります。詳細については、部分的な指標データをご覧ください。

次のステップ