このドキュメントでは、アラート ポリシーにユーザー定義のラベルを追加して、通知とインシデントを管理する方法について説明します。ユーザー定義のラベルは通知に含まれるため、インシデントの重大度を示すラベルを追加すると、通知に調査のためのアラートの優先順位付けに役立つ情報が含まれます。
ラベルについて
ラベルは、時系列、アラート ポリシー、インシデントに関連付けられた Key-Value ペアです。指標ラベル、リソースラベル、ユーザー定義のラベルがあります。指標ラベルとリソースラベルには、収集されている指標、または指標が書き込まれるリソースに関する具体的な情報が含まれます。これとは対照的に、ユーザー定義ラベルは作成したラベルであり、必要に応じて固有の情報を記録します。
時系列データが書き込まれるとき、ラベルがデータに付けられ、そのデータに関する情報を記録します。たとえば、時系列のラベルでは、仮想マシン(VM)、ゾーン、Google Cloud プロジェクト、デバイスタイプを識別できます。
アラート ポリシーとインシデントには、ユーザーラベルを追加できます。
アラート ポリシーのラベルには静的な値が設定されています。Google Cloud コンソールまたは Cloud Monitoring API を使用しているときに、アラート ポリシーにこれらのラベルを追加できます。詳細については、次のドキュメントをご覧ください。
ラベルのキーは小文字で始める必要があります。ラベルキーとラベル値の両方に使用できるのは、小文字、数字、アンダースコア、ダッシュのみです。
インシデントのラベルには、動的に値を設定できます。つまり、時系列データの値によってラベル値が決まります。 例については、Monitoring Query Language(MQL)を使用して動的重大度を作成するをご覧ください。
これらのラベルは、MQL によるアラート ポリシーの条件を指定するときに定義できます。
通知のラベルを確認する
アラート ポリシーまたはインシデントのラベルは、インシデントの詳細ページ、アラート ポリシーの詳細ページ、および一部の通知で表示できます。
メール通知では、ポリシーに追加したラベルが [ポリシーラベル] セクションに一覧表示され、インシデントに追加したラベルが [指標ラベル] セクションに表示されます。
PagerDuty、Webhook、Pub/Sub の通知では、アラート ポリシーやインシデントに追加したラベルが JSON データに含まれます。 アラート ポリシーラベルは、JSON 構造の
policy_user_labels
フィールドにリストされます。"policy_user_labels": { "severity": "critical", }
インシデント ラベルは、JSON 構造の
metric
フィールドに設定されます。"metric": { "type" : "compute.googleapis.com/instance/cpu/utilization" "displayName": "CPU Utilization", "labels": { "instance_name": "some_instance_name", "severity": "critical" }, }
前述のように、
metric
フィールドには、指標タイプ、指標の表示名、指標ラベル、インシデントに追加されたユーザー定義ラベルが列挙されます。
例: ラベルと MQL を使用して動的な重大度レベルを作成する
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
フィールドに推奨値を使用しない場合は、データの到着が停止しても対応待ちのインシデントは直ちにクローズされません。その結果、同じ入力時系列に複数の対応待ちのインシデントが表示されることがあります。詳細については、部分的な指標データをご覧ください。