条件に Monitoring Query Language(MQL)クエリを含む Monitoring アラート ポリシーを作成できます。アラート ポリシー条件の MQL クエリは、MQL アラート オペレーションが含まれる以外はその他の MQL クエリと同様です。条件内で MQL を使用する場合は、その条件をポリシー内の唯一の条件にする必要があります。
このページでは、MQL アラート オペレーションの概要と、それを使用するアラート ポリシーの作成方法について説明します。Monitoring のアラート ポリシーの一般的な情報については、指標ベースのアラート ポリシーの動作をご覧ください。
始める
すべての MQL クエリは次のコンポーネントから始まります。
fetch
オペレーション。Cloud Monitoring から時系列を取得します。- 取得する時系列を識別するモニタリング対象リソースと指標タイプで構成される引数。
たとえば、次のクエリは、Compute Engine インスタンスによって書き込まれた指標タイプ compute.googleapis.com/instance/cpu/utilization
の時系列を取得し、それらのインスタンスの CPU 使用率を記録します。
fetch gce_instance::compute.googleapis.com/instance/cpu/utilization
fetch
コマンドの引数は、モニタリング対象リソースタイプ gce_instance
、2 つのコロン文字 ::
、および指標タイプ compute.googleapis.com/instance/cpu/utilization
で構成されます。
MQL ベースの条件のアラート ポリシーでクエリを使用するには、Cloud Monitoring がアラートをトリガーするパラメータを定義するオペレーションでクエリを終了する必要があります。オペレーションは、指標しきい値のアラート ポリシーを作成するか、指標なしのアラート ポリシーを作成するかによって異なります。
指標しきい値のアラート ポリシーの MQL クエリ
指標しきい値 MQL クエリには、クエリの実行時間内の各ポイントでブール式を評価する condition
オペレーションが必要です。期間時間枠内のすべてのポイントで式が true
と評価された場合、Cloud Monitoring はアラートをトリガーします。
たとえば、次のクエリは Compute Engine VM インスタンスを評価し、いずれかのインスタンスが過去 24 時間に 5 GB を超えるディスクを書き込んだ場合にアラートをトリガーします。
fetch gce_instance :: compute.googleapis.com/instance/disk/write_bytes_count | group_by 24h, .sum | every 30s | condition val() > 5'GBy'
複雑な条件を使用して、特定のデータ範囲を評価できます。たとえば、次の条件では、過去 24 時間に VM インスタンスで 5 GB を超えて 6 GB 未満のデータが書き込まれた場合、または 8 ギガバイトを超えるデータが書き込まれた場合にアラートがトリガーされます。
fetch gce_instance :: compute.googleapis.com/instance/disk/write_bytes_count | group_by 24h, .sum | every 30s | condition (val() > 5'GBy' && val() < 6'GBy') || val() > 8'GBy'
次の例では、filter
、スライディング group_by
オペレーション、複雑な条件を使用して、アライメントされた入力テーブルの各データポイントを評価し、使用率の値がしきい値の 15% を超えているかどうかを判断します。
fetch gce_instance::compute.googleapis.com/instance/cpu/utilization | filter zone =~ 'us-central.*' | group_by sliding(5m), mean(val()) | every 30s | condition val() > .15 '10^2.%'
上記のクエリでは、condition
演算子によって生成されるテーブルには、しきい値の評価結果を記録するブール値列と、入力テーブルからの utilization
値のコピーが含まれる列の 2 つの列があります。デフォルトの group_by
ウィンドウ設定はスライドするため、group_by
式は group_by 5m, mean(val())
と同じになります。
CPU 使用率の値は、小数の使用率として保存されます。値の範囲は 0.0~1.0 です。指標記述子では、これらの値の単位が 10^2.%
として指定され、グラフではパーセンテージで表示されます。しきい値の単位には互換性が必要であるため、しきい値を .15 '10^2.%
として表現します。
指標なしのアラート ポリシーの MQL クエリ
指標の不在 MQL クエリは absent_for
オペレーションを使用します。このオペレーションでは、データが欠落している期間を使用します。たとえば、次のクエリテストでは、米国中部ゾーンから 8 時間分のデータが欠落しているかどうかをテストします。
fetch gce_instance::compute.googleapis.com/instance/cpu/utilization | filter zone =~ 'us-central.*' | every 30s | absent_for 8h
absent_for
オペレーションでは、条件を満たすためにデータが欠落している時間の長さを示す duration 引数のみを使用します。
データが過去 24 時間以内に出現したものの、期間(この例では過去 8 時間)内には欠落している場合は、データが不在と見なされます。
absent_for
クエリでは、デフォルトのアライメント、または absent_for
オペレーションの後に every
オペレーションを使用して、値が整列された出力テーブルを作成します。
出力テーブルには 2 つの列があります。
1 番目の列は、データが存在しない場合のブール値の結果を記録する
active
列です。true
値は、過去 24 時間に入力ポイントが存在し、期間内には入力ポイントが存在しないことを示しています。2 番目の列は
signal
列です。入力テーブルに値列がある場合、signal
列には、最新の入力ポイントの最初の値列の値が含まれます。入力テーブルに値列がない場合、signal
列には最後の入力ポイントが記録されてからの分数が含まれます。次の例に示すように、このケースを適用できます。fetch gce_instance::compute.googleapis.com/instance/cpu/utilization | filter zone =~ 'us-central.*' | value [] | every 30s | absent_for 8h
前の例では、
value []
オペレーションで入力テーブルから値列が削除されるため、absent_for
オペレーションによって作成されたテーブルのsignal
列には最後の入力ポイントが記録されてからの分数が格納されます。
アラート ポリシーの構成
MQL クエリに加えて、アラート ポリシー条件には他にも 2 つの値が含まれます。
- 条件を満たす必要のある入力時系列の数。この値は、次のいずれかになります。
- 1 つの時系列。
- 特定の数の時系列。
- 時系列の割合。
- すべての時系列。
- アラート状態の期間、つまりアラート条件が継続的に
true
に評価される期間。
特定の時系列でクエリが true
と評価される時間が継続している場合、その時系列は有効とみなされます。指定された数の時系列が有効な場合、アラート ポリシーがトリガーされ、有効な時系列ごとにアラートが生成されます。アラート ポリシーの評価方法の詳細については、指標ベースのアラート ポリシーの動作をご覧ください。
時系列データが到着しない、またはデータが遅延すると、Monitoring ではデータの欠落として分類されます。データが到着しなくなったときに指標しきい値の条件を評価するように Monitoring を構成する方法については、部分的な指標データをご覧ください。
MQL を条件で使用する場合は、その条件をポリシー内の唯一の条件にする必要があります。MQL ベースのアラート ポリシーで複数の条件を使用することはできません。
ガイドライン
MQL を使用すると、ユーザー定義のラベルを作成してインシデントに付けることができます。 例については、アラート ポリシーに重大度レベルを追加するをご覧ください。
指標タイプの単位は、該当する指標タイプの表に記載されています。指標タイプ compute.googleapis.com/instance/cpu/utilization
については、compute
テーブルをご覧ください。
次のステップ
Google Cloud コンソールと Cloud Monitoring API を使用して、MQL ベースの条件でアラート ポリシーを作成する方法については、MQL アラートを作成するをご覧ください。
MQL ベースの条件で効果的なアラート ポリシーを構成するためのガイドラインと推奨事項のリストについては、MQL アラートのベスト プラクティスをご覧ください。
MQL ベースの条件でアラート ポリシーに関する一般的な問題のトラブルシューティングを行う方法については、MQL アラートのトラブルシューティングをご覧ください。
MQL ベースの条件を使用したアラート ポリシーの例については、MQL アラートのユースケースをご覧ください。