このドキュメントでは、ユーザー定義のラベルを付けてインシデントを整理し、優先順位を付ける方法について説明します。これらのラベルはアラート ポリシーで構成され、アラート ポリシーとインシデントに一覧表示されます。構成によっては、特定の通知にラベルも一覧表示されます。
ラベルについて
ラベル(Key-Value ペア)は、時系列、アラート ポリシー、インシデント、通知に情報を付加するために使用されます。たとえば、時系列のラベルは、データの収集元となった特定の仮想マシン(VM)インスタンスを識別できます。ラベルは、ユーザー定義または事前定義のいずれかです。
ユーザー定義のラベル
ユーザー定義ラベルには、指定した情報が含まれます。これらのラベルには、静的または動的な値を指定できます。
静的ユーザー定義ラベルには、変更できない値があります。 Google Cloud コンソールまたは Cloud Monitoring API を使用してアラート ポリシーを構成するときに、静的ユーザー定義ラベルを作成できます。詳細については、次のドキュメントをご覧ください。
動的なユーザー定義ラベルには、時系列データの値に基づいて変化する値があります。動的なユーザー定義ラベルは、MQL によるアラート ポリシーの条件を構成するときに作成できます。例については、例: 動的な値を使用してユーザー定義ラベルを追加するをご覧ください。
ラベルのキーは小文字で始める必要があります。ラベルキーとラベル値の両方に使用できるのは、小文字、数字、アンダースコア、ダッシュのみです。
定義済みのラベル
事前定義されたラベルはリソース記述子に含まれています。これらのラベルは、時系列データの書き込み時に設定する必要があります。これらのラベルは、収集される指標または指標の書き込み対象となるリソースに関する情報を示します。たとえば、時系列のラベルは、仮想マシン(VM)、ゾーン、 Google Cloud プロジェクト、デバイスタイプを識別できます。Monitoring がその時系列に基づいてインシデントを作成すると、インシデントはこれらのラベルを継承します。
App Hub ラベル
App Hub は、アプリケーションとそのサービスとワークロードによって生成されたログデータ、指標データ、トレースデータにラベルを付加します。これらのラベルを使用すると、 Google Cloud インフラストラクチャで、指標とログデータを示すアプリケーション、サービス、ワークロードのダッシュボードを作成できます。詳細については、次のいずれかのドキュメントをご覧ください。
- Google Cloud コンソール: アラート ポリシーを App Hub アプリケーションに関連付ける
- Cloud Monitoring API: アラート ポリシーを App Hub アプリケーションに関連付ける
ラベルを表示する方法
アラート ポリシーまたはインシデントのラベルは、インシデントの詳細ページ、アラート ポリシーの詳細ページ、および一部の通知で表示できます。
- アラート ポリシー: 静的ユーザー定義ラベルは、[ユーザーラベル] セクションに一覧表示されます。動的なユーザー定義ラベルと事前定義ラベルは表示されません。
- インシデント: 静的ユーザー定義ラベルは、[ポリシーラベル] セクションに一覧表示され、動的ユーザー定義ラベルは [指標ラベル] セクションに一覧表示されます。事前定義ラベルは、[モニタリング対象リソースラベル] と [指標ラベル] のセクションに一覧表示されています。
通知: 事前定義されたラベルとユーザー定義ラベルは、次の通知タイプで一覧表示されます。
- メール
- 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」の重大度ラベルがあります。 |
ポリシー ハンドラによって生成された時系列データは、インシデント マネージャーへの入力です。インシデント マネージャーは、インシデントが作成およびクローズされるタイミングを決定します。インシデントをクローズするタイミングを判断するために、インシデント マネージャーは、duration
、evaluationMissingData
、および autoClose
フィールドの値を使用します。
ベスト プラクティス
値が動的に設定されるラベルを作成する際、一度に最大 1 つのインシデントを開始させるには、次の操作を行います。
MetricThreshold
オブジェクトで、次のフィールドのデフォルト値をオーバーライドします。duration
フィールド: ゼロ以外の値を設定します。evaluationMissingData
フィールド: データの受信が停止したときにインシデントがクローズされるように設定します。Cloud Monitoring API を使用する場合は、このフィールドをEVALUATION_MISSING_DATA_INACTIVE
に設定します。 Google Cloud コンソールを使用する場合は、フィールドを「条件に違反しない値として扱われる欠落しているデータポイント」に設定します。
AlertStrategy
オブジェクトで、autoClose
フィールドを最小値の 30 分に設定します。Cloud Monitoring API を使用する場合は、このフィールドを30m
に設定します。
詳細については、部分的な指標データをご覧ください。
インシデント フロー
アラート ポリシーの作成時に CPU 使用率の測定値が 70% 未満であるとします。次のシーケンスは、インシデントの開始と終了の仕組みを示しています。
CPU 使用率の測定値は 70% 未満であるため、ポリシー ハンドラは「GOOD」の時系列を生成し、インシデントは開かれません。
次に、CPU 使用率が 93% に上昇したとします。ポリシー ハンドラは、「GOOD」時系列データの生成を停止し、「CRITICAL」時系列のデータの生成を開始します。
インシデント マネージャーは、条件を満たす新しい「CRITICAL」時系列を確認し、インシデントを開始します。通知には、値が
CRITICAL
の重大度ラベルが設定されます。CPU 使用率が 75% に低下したとします。ポリシー ハンドラは、「CRITICAL」時系列の生成を停止し、「INFO」時系列の生成を開始します。
インシデント マネージャーは、条件を満たす新しい「INFO」時系列を確認し、インシデントを開始します。通知には、値が
INFO
の重大度ラベルが設定されます。インシデント マネージャーは、「CRITICAL」時系列のデータが届いていないこと、その時系列のインシデントが対応待ちであることを認識します。このポリシーは、データが到着しなくなったときにインシデントをクローズするように構成されているため、インシデント マネージャーは「CRITICAL」時系列に関連付けられたインシデントをクローズします。したがって、重大度ラベルの値が
INFO
のインシデントのみが対応待ちのままになります。最後に、CPU 使用率が 45% に低下したとします。この値はすべてのしきい値よりも小さいため、ポリシー ハンドラは「INFO」時系列の生成を停止し、「GOOD」時系列の生成を開始します。
インシデント マネージャーは、「INFO」時系列のデータが届いていないこと、その時系列のインシデントが対応待ちであることを認識します。ポリシーでは推奨設定が使用されているため、インシデントがクローズされます。
evaluationMissingData
フィールドに推奨値を使用しない場合、データの受信が停止しても、未解決のインシデントはすぐにクローズされません。その結果、同じ入力時系列に対して複数の対応待ちインシデントが表示されることがあります。詳細については、部分的な指標データをご覧ください。