このドキュメントでは、アラート ポリシーの条件を構成するときに設定するフィールドについて説明します。通常、仮想マシンの CPU 使用率などの時系列データが一定の条件を満たしているときに通知を受け取る場合に、アラート ポリシーを作成します。このコンテンツは、ログベースのアラート ポリシーには適用されません。ログに特定のメッセージが表示されたときに通知する、ログベースのアラート ポリシーの詳細については、ログのモニタリングをご覧ください。
表示するデータを選択する
アラート ポリシーを作成する際、表示する指標を指定するには、指標とリソースタイプの値を指定します。
[指標] フィールドは、モニタリング対象リソースから収集される測定値を識別します。これには、測定対象および測定値がどのように解釈されるかについての説明が含まれます。指標 は、指標タイプの短縮形です。コンセプトについては、指標タイプをご覧ください。
[リソースタイプ] フィールドは、指標データがキャプチャされるリソースを指定します。リソースタイプは、モニタリング対象リソースタイプまたはリソースとも呼ばれます。コンセプトについては、モニタリング対象リソースをご覧ください。
Monitoring では、多くの事前定義済み指標タイプやモニタリング対象リソースが利用できます。また、カスタム指標を指定することもできます。
定義済みの指標タイプの詳細は、指標の一覧をご覧ください。各ドキュメントには、サービスの種類別に指標が列挙されます。たとえば、Google Cloud の指標ページには、Google Cloud サービスごとに 1 つずつ、一連のテーブルが含まれます。
使用可能なモニタリング対象リソースのタイプについては、モニタリング対象リソースのリストをご覧ください。
独自の指標の定義については、カスタム指標の使用をご覧ください。
Cloud Monitoring では、アラート ポリシーを作成するためのインターフェースが更新されています。使用しているインターフェースに対応するタブを選択してください。
以前のインターフェース
指標を選択するには、[Find resource type and metric] フィールドを使用して、リソースタイプと指標タイプを 1 つずつ選択します。どちらを先に選択してもかまいません。まず、フィールドをクリックします。前の選択に応じて、1 つまたは 2 つのリストが表示されます。次のスクリーンショットのように、リストのヘッダーに Resource types または Metrics が表示されます。
次のいずれかの方法でエントリを選択します。
リストからエントリを選択する。
Monitoring フィルタを入力する。Monitoring フィルタは、Monitoring がモニタリング対象の時系列を識別するために使用する式です。次の Monitoring フィルタの結果は、
us-east1-b
ゾーンのすべての Google Cloud 仮想マシン インスタンスのログエントリ数を示すグラフになります。metric.type="logging.googleapis.com/log_entry_count" resource.type="gce_instance" resource.label."zone"="us-east1-b"
指標フィルタを入力する方法は次のとおりです。
- [Find resource type and metric] の隣にある、[Help] help_outlineをクリックします。
[ヘルプ] ペインで [Direct filter mode] をクリックします。
[Direct filter mode] が有効な場合、[Find resource type and metric] オプションが [Resource type, metric, and filter] という名前の編集可能なテキスト ボックスに置き換わります。
[Direct filter mode] を選択する前にリソースタイプ、指標、フィルタを選択した場合、これらの設定が [Resource type, metric, and filter] テキスト ボックスへの事前入力に使用されます。
[Resource type, metric, and filter] テキスト ボックスに指標フィルタを入力します。フィルタには、指標タイプとリソースタイプを含める必要があります。また、ラベルフィルタを含めることもできます。フィルタの文法については、モニタリング フィルタをご覧ください。
たとえば、
us-east1-b
ゾーンのすべての Google Cloud VM インスタンスのログエントリを表示するには、以下を入力します。metric.type="logging.googleapis.com/log_entry_count" resource.type="gce_instance" resource.label."zone"="us-east1-b"
ダイレクト フィルタ モードを使用してグラフやアラート ポリシーを構成していて、データが利用できない場合、グラフにエラー メッセージが表示されます。正確なエラー メッセージは、入力したフィルタによって変わります。たとえば、一般的なメッセージは
Chart definition invalid
です。「No data is available for the selected time frame.
」というメッセージが表示されることもあります。
いずれかのリストの項目にカーソルを合わせると、ツールチップが開き、その項目の記述子に含まれる情報が表示されます。指標タイプまたはモニタリング対象リソースの記述子については、指標の一覧、モニタリング対象リソースの一覧をそれぞれご覧ください。
リソースタイプと指標のペアを 1 つ以上選択すると、グラフには使用可能なすべての時系列が表示されます。[Metric] タブには、指定した指標の下に追加項目が表示されます。次のスクリーンショットは、1 つの指標を指定した後の [Metric] タブを示しています。
プレビューのインターフェース
アラート ポリシーの条件を構成するには、Cloud Monitoring API または Google Cloud Console を使用します。Cloud Console を使用する場合は、モニタリングする時系列の指定方法を選択します。
-
特定のリソースの指標をモニタリングする条件を構成し、MQL を使用しない場合は、基本モードを使用します。デフォルトでは、メニューにはデータを受信した指標のみが表示されます。トグルスイッチにより、Google Cloud のすべての指標を表示できます。
リソースと指標を選択した後、フィルタを指定します。
-
MQL を使用して条件を記述する場合、または指標の比率をモニタリングする場合は、MQL モードを使用します。
MQL の使用方法については、Monitoring Query Language の使用をご覧ください。
次に、条件トリガーを構成します。
-
次のいずれかをグラフ化する場合は、ダイレクト フィルタモードを使用します。
- サービスレベル目標(SLO)をモニタリングする。
- まだデータのないカスタム指標のアラートを構成する。
- 仮想マシン(VM)で動作しているプロセス数をモニタリングする。
- API コマンドに含めるフィルタ ステートメントの構文を確認する。
ダイレクト フィルタモードを使用する場合、時系列を選択するには、モニタリング フィルタを入力します。たとえば、グラフ中の次のモニタリング フィルタは、名前に
nginx
が含まれるプロセスの数を表示します。select_process_count("monitoring.regex.full_match(\".*nginx.*\")") resource.type="gce_instance"
次のフィルタでは、
us-central1-a
ゾーンにある Compute Engine VM のDisk write bytes
時系列を選択します。metric.type="compute.googleapis.com/instance/disk/write_bytes_count" resource.type="gce_instance" resource.label."zone"="us-central1-a"
構文については、次のドキュメントをご覧ください。
Monitoring フィルタを指定したら、次のステップでは、データ変換オプションを指定します。
このページの残りの部分では、Cloud Console のメニュー形式のインターフェースで使用される用語を使用します。ただし、その考え方は、アラート ポリシーの作成に使用できるすべての手法に適用できます。
選択したデータをフィルタする
以前のインターフェース
モニタリング対象のデータの量を減らすには、フィルタ条件を指定するか、集計を適用します。フィルタにより、一定の条件を満たす時系列のみが使用されるようになります。フィルタを適用すると、評価する時系列が減り、アラートのパフォーマンスが向上します。
複数のフィルタ条件を指定すると、対応するグラフには、すべての条件を満たす時系列(論理 AND
)だけが表示されます。
Google Cloud Console でフィルタを追加するには、[フィルタ] フィールドをクリックします。これにより、フィルタ条件のリストを含むパネルが開きます。たとえば、リソース グループ、名前、リソースラベル、ゾーン、指標ラベルでフィルタリングできます。
次のスクリーンショットでは、特定の指標のラベルでフィルタリングを設定しています。
条件をリストから選択することも、直接入力することもできます。まだ表示されていないデータのフィルタを作成することもできます。このようなフィルタ条件は選択リストに表示されませんが、今後有効になることがわかっている場合は手動で指定できます。
フィルタリングするラベルを選択したら、フィルタの残りの部分(値または値の範囲と比較演算子)を指定します。
たとえば、次のスクリーンショットには zone
リソースラベルに設定したフィルタが示されています。[Filter] フィールドで使用できる比較演算子には、等式 =
と =~
のペアと、不等式 !=
と !=~
のペアがあります。各ペアの 2 番目の項目は、値として正規表現を取ります。デフォルトは、単純な等式(=
)です。
比較演算子のリストの下にあるのは、使用可能な値のリストです。次のスクリーンショットには、プロジェクト内のゾーンの名前が示されています。
[Value] フィールドでは、プルダウン リストにあるいずれかの項目を選択できます。あるいは、複数の項目と一致する式を入力することもできます。
直接比較
=
または!=
の場合は、starts_with
のようなフィルタ文字列を作成できます。たとえば、フィルタ文字列starts_with("us-central")
は任意のus-central
ゾーンと一致します。フィルタ文字列に関する詳細については、モニタリング フィルタをご覧ください。
正規表現
=~
または!=~
の場合は、値として RE2 正規表現を入力します。たとえば、正規表現us-central1-.*
は任意のus-central1
ゾーンと一致します。正規表現
^us.*.a$
は、名前が「a」で終わる任意の US ゾーンと一致します。
フィルタ条件は複数指定できます。また、同じラベルを複数回使用することもできます。これにより、ある範囲の値をフィルタリングできます。さらにフィルタを追加するには、フィルタ フィールドの下部にある [Add a filter] をクリックします。現時点では、すべてのフィルタ条件が満たされる必要があり、これらは論理 AND
を構成します。たとえば、starts_with
と ends_with
の両方のフィルタ文字列を使用して、米国の「a」ゾーンのみを表示できます。
zone="starts_with("asia-east1")"
フィルタまたは zone=~"asia-east1.*"
フィルタを使用すると、asia-east1
ゾーンのいずれかからのデータを含む時系列のみが表示されます。
プレビューのインターフェース
モニタリング対象のデータの量を減らすには、フィルタ条件を指定するか、集計を適用します。フィルタにより、一定の条件を満たす時系列のみが使用されるようになります。フィルタを適用すると、評価する時系列が減り、アラートのパフォーマンスが向上します。
複数のフィルタ条件を指定すると、対応するグラフには、すべての条件を満たす時系列(論理 AND
)だけが表示されます。
フィルタを追加するには、[フィルタを追加] をクリックし、ダイアログを完成させて、[完了] をクリックします。ダイアログで [フィルタ] フィールドを使用し、フィルタリング条件を選択します。たとえば、リソース グループ、名前、リソースラベル、ゾーン、指標ラベルでフィルタリングできます。フィルタ条件を選択したら、比較演算子と値を選択してフィルタを完成させます。次の表の各行には、比較演算子とその意味、例が示されています。
演算子 | 意味 | 例 |
---|---|---|
= |
平等 | resource.labels.zone = "us-central1-a |
!= |
等しくない | resource.labels.zone != "us-central1-a" |
=~ |
正規表現 2 等式 | monitoring.regex.full_match("^us.*") |
!=~ |
正規表現 2 不等式 | monitoring.regex.full_match("^us.*") |
starts_with |
値の先頭に次の項目が配置されている | resource.labels.zone = starts_with("us") |
ends_with |
値の末尾に次の項目が配置されている | resource.labels.zone = ends_with("b") |
has_substring |
値が次の項目を含む | resource.labels.zone = has_substring("east") |
one_of |
次のいずれか | resource.labels.zone = one_of("asia-east1-b", "europe-north1-a") |
!starts_with |
値の先頭に次の項目が配置されていない | resource.labels.zone != starts_with("us") |
!ends_with |
値が次の項目で終わらない | resource.labels.zone != ends_with("b") |
!has_substring |
値が次の項目を含まない | resource.labels.zone != has_substring("east") |
!one_of |
値が次の項目のいずれにも一致しない | resource.labels.zone != one_of("asia-east1-b", "europe-north1-a") |
データの変換
時系列を選択したら、次のステップでは、各時系列の処理方法(アライメントとも呼ばれます)、およびアライメントされた時系列の組み合わせを指定します。以前のインターフェースや Cloud Monitoring API を使用している場合は、集約フィールドを使用して時系列の変換方法を指定します。
このページの残りの部分では、これらのオプションについて簡単に説明します。詳細については、時系列の操作をご覧ください。
時系列を配置する
アライメントは、Monitoring によって受信された時系列を、固定間隔でデータポイントを持つ新しい時系列に変換するプロセスです。アライメントのプロセスは、次のステップで構成されます。
- 時系列を一連の固定長の間隔に分割する。
- 各間隔で受信したすべてのデータポイントを収集し、それらのデータポイントを結合する関数を適用する。たとえば、この関数を選択してすべてのサンプルの平均を計算できます。
- 前のステップで計算された値にタイムスタンプを関連付け、アライメントされた時系列にそのペアを追加します。
アライメントの概要については、アライメント: 系列内の正則化をご覧ください。
以前のインターフェース
アラート ポリシーの条件を作成するときは、アライメント パラメータを指定する必要があります。Google Cloud Console を使用する場合は、これらのパラメータのデフォルト値を指定します。
期間: 期間は、特定の時点からのルックバック間隔です。たとえば、期間が 5 分の場合、午後 1 時では、午後 12 時 55 分から午後 1 時の間に受信したサンプルがアライメントされます。午後 1 時 1 分では、午後 12 時 56 分から午後 1 時 1 分の間に受信したサンプルがアライメントされます。アラート ポリシーでは、アライメント期間については、過去を見せるスライディング ウィンドウとして表示されます。このフィールドの詳細については、アライメント期間と期間時間をご覧ください。
残りの集計オプションを表示するには、[Show advanced options] をクリックします。
整列指定子: [整列指定子] フィールドは、アライメント期間内のすべてのデータポイントを組み合わせるために使用される関数を指定します。使用可能な整列指定子についての詳細は、API リファレンスの
Aligner
をご覧ください。 一部の整列指定子は、データの整列と別の種類の指標への変換の両方を行います。詳細については、種類、タイプ、変換をご覧ください。
プレビューのインターフェース
アラート ポリシーの条件を作成するときは、アライメント パラメータを指定する必要があります。Google Cloud Console を使用する場合は、これらのパラメータのデフォルト値を指定します。
ローリング ウィンドウ: このフィールドは、特定の時点のルックバック間隔です。たとえば、この値が 5 分の場合、午後 1 時では、午後 12 時 55 分から午後 1 時の間に受信したサンプルがアライメントされます。午後 1 時 1 分では、午後 12 時 56 分から午後 1 時 1 分の間に受信したサンプルがアライメントされます。アラート ポリシーでは、アライメント期間については、過去を見せるスライディング ウィンドウとして表示されます。このフィールドの詳細については、アライメント期間と期間時間をご覧ください。
ローリング ウィンドウ関数: このフィールドは、ルックバック間隔内のすべてのデータポイントを結合するために使用される関数を指定します。Cloud Monitoring API では、このフィールドは整列指定子と呼ばれます。使用可能な関数についての詳細は、API リファレンスの
Aligner
をご覧ください。一部の整列指定子の関数では、データの整列と別の種類やタイプの指標への変換の両方が行われます。詳細については、種類、タイプ、変換をご覧ください。
時系列を結合する
異なる時系列を組み合わせることで、指標に対して返されるデータの量を減らすことができます。複数の時系列を組み合わせるには、通常、グループ化と関数を指定します。グループ化はラベル値で行います。関数は、グループ内のすべての時系列を新しい時系列に結合する方法を定義します。
以前のインターフェース
グループを追加するには、[Group by] テキスト ボックス内のテキストをクリックし、メニューから選択します。メニューは、選択したリソースと指標の時系列データに基づいて動的に作成されます。グループ化とフィルタリングでは、同じラベルセットを使用します。
最初のラベルを追加すると、次のようになります。
- アグリゲータが選択されます。表示されるデータの種類によって、デフォルトのアグリゲータが決まります。ただし、この関数は変更できます。
- アグリゲータは、同じラベル値を持つ時系列を 1 つの時系列に結合する方法を決定します。
- グラフには、[Group by] テキスト ボックスに記載されているラベルの値ごとに 1 つの時系列が表示されます。
複数のラベルでグループ化した場合、アグリゲータは指定されたラベルついて、同じ値を持つ時系列を結合します。
グループ化オプションを指定せずにアグリゲータを指定すると、関数は選択したすべての時系列に適用され、1 つの時系列になります。
次のスクリーンショットは、アグリゲータが sum
のデフォルト値に設定された、user_labels.version
によるグループ化を示しています。
この選択により、ラベル user_labels.version
の値ごとに 1 つの時系列が生成されます。各時系列のデータポイントは、特定バージョンの個別の時系列のすべての値の合計から計算されます。
プレビューのインターフェース
時系列を集約するオプションにアクセスするには、[時系列をまたぐ] セクションの expand_more [もっと見る] をクリックします。
時系列をラベル値で結合するには、テキスト [時系列グループ条件] をクリックし、メニューから選択します。このメニューは、選択した時系列に基づいて動的に作成されます。
最初のラベルを追加すると、次のようになります。
[時系列の集計] フィールドが none に設定されているため、エラーが表示されます。このエラーを解決するには、時系列を同じラベル値と組み合わせるために使用される関数を選択します。
グラフには、[時系列グループ条件] フィールドに列挙されたラベルの値ごとに 1 つの時系列が表示されます。
グループ化オプションを指定せずに集計関数を指定すると、関数は選択したすべての時系列に適用され、1 つの時系列になります。
複数のラベルでグループ化できます。グループ化の選択肢が複数ある場合は、選択したラベルに対して同じ値を持つ一連の時系列にアグリゲータが適用されます。
結果のグラフには、ラベル値の組み合わせごとに 1 つの時系列が表示されます。ラベルを指定する順序は問題になりません。
たとえば、次のスクリーンショットは、user_labels.version
と system_labels.machine_image
によるグループ化を示しています。
図のように、両方のラベルでグループ化すると、値のペアごとに 1 つの時系列が取得されます。この方法では、ラベルの組み合わせごとに時系列が作成されるため、1 つのグラフに作成する場合よりも多くのデータが作成されます。
グループ化を指定した場合、またはアグリゲータを選択した場合、グラフ化された時系列には、プロジェクト識別子などの必要なラベルと、グループ化で指定されたラベルのみが含まれます。
グループ別条件を削除するには、次の操作を行います。
- グループ別ラベルを削除します。
- アグリゲータを
none
に設定します。
二次集計
以前のインターフェース
複数の時系列ですでに集計が表されている場合は、セカンダリ アグリゲータを選択することで、グラフのすべての時系列を 1 つの時系列に削減できます。たとえば、データをゾーンごとにグループ化すると、グラフにはゾーンごとに 1 つの時系列が表示されます。1 つの時系列でグラフを作成するには、セカンダリ集計フィールドを使用します。
プレビューのインターフェース
プライマリ データ変換の後に複数の時系列が表示されており、アラート ポリシーで 1 つの時系列をモニタリングする必要がある場合は、[セカンダリ データ変換] フィールドを使用します。
データがない場合の動作
以前のインターフェース
データが到着しなくなったときに Monitoring が対応待ちのインシデントを閉じるまでの待機時間を構成できます。ただし、欠落データの置換値を Monitoring が選択する方法を構成することはできません。
データが到着しなくなった後に、Monitoring が対応待ちのインシデントを閉じるまでの待機時間を構成するには、[インシデントの自動クローズ期間] フィールドを使用します。通知ステップで自動クローズの期間を設定します。デフォルトの自動クローズ期間は 7 日間です。
プレビューのインターフェース
データが到着しなくなったときに Monitoring で指標しきい値の条件を評価する方法を構成できます。たとえば、インシデントが対応待ちで、予想される測定値が届かない場合、Monitoring でインシデントを開いたままにするか、すぐにクローズしますか?また、データが到着しなくなり、対応待ちのインシデントがない場合、インシデントをオープンにしますか?最後に、データが到着しなくなった後、インシデントをオープンにしておく期間はどれくらいですか?
データが到着しなくなったときに Monitoring で指標しきい値の条件を評価する方法を指定する 2 つの構成可能なフィールドがあります。
欠落データの置換値を Monitoring が決定する方法を構成するには、[条件トリガー] ステップで設定した [評価の欠落データ] フィールドを使用します。再テストの時間枠が [再テストなし] に設定されている場合、このフィールドは無効になります。
データが到着しなくなった後に、Monitoring が対応待ちのインシデントを閉じるまでの待機時間を構成するには、[インシデントの自動クローズ期間] フィールドを使用します。通知ステップで自動クローズの期間を設定します。デフォルトの自動クローズ期間は 7 日間です。
欠落データ フィールドのさまざまなオプションは次のとおりです。
Cloud Console [欠落データの評価] フィールド |
概要 | 詳細 |
---|---|---|
欠落データがない | 対応待ちのインシデントはオープンのままです。 新しいインシデントはオープンされません。 |
条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントは対応待ちのままになります。インシデントが対応待ちで、自動クローズ期間にデータが到着しない場合、インシデントはクローズされます。 条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。 |
欠落データポイントが、ポリシーに違反する値として扱われる | 対応待ちのインシデントはオープンのままです。 新しいインシデントをオープンできます。 |
条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントは対応待ちのままになります。インシデントが対応待ちで、自動クローズ期間に 24 時間を加えた期間にデータが到着しない場合、インシデントはクローズされます。 条件が満たされていない場合、この設定により、指標しきい値条件は指標のない条件のように動作します。再テストの時間枠で指定された時間内にデータが到着しない場合、条件は満たされたと評価されます。1 つの条件のアラート ポリシーの場合、条件が満たされるとインシデントが開かれます。 |
欠落データポイントが、ポリシーに違反しない値として扱われる | 対応待ちのインシデントはクローズされます。 新しいインシデントはオープンされません。 |
条件が満たされている場合、データが到着しなくなると、条件は満たされなくなります。この条件でインシデントが対応待ちの場合、インシデントはクローズされます。 条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。 |
API
データが到着しなくなったときに Monitoring で指標しきい値の条件を評価する方法を構成できます。たとえば、インシデントが対応待ちで、予想される測定値が届かない場合、Monitoring でインシデントを開いたままにするか、すぐにクローズしますか?また、データが到着しなくなり、対応待ちのインシデントがない場合、インシデントをオープンにしますか?最後に、データが到着しなくなった後、インシデントをオープンにしておく期間はどれくらいですか?
データが到着しなくなったときに Monitoring で指標しきい値の条件を評価する方法を指定する 2 つの構成可能なフィールドがあります。
欠落データの置換値を Monitoring が決定する方法を構成するには、
MetricThreshold
構造のevaluationMissingData
フィールドを使用します。期間フィールドがゼロの場合、このフィールドは無視されます。データが到着しなくなった後に対応待ちのインシデントを閉じるまで Monitoring が待機する時間を構成するには、
AlertStrategy
構造のautoClose
フィールドを使用します。
欠落データ フィールドのさまざまなオプションは次のとおりです。
APIevaluationMissingData フィールド |
概要 | 詳細 |
---|---|---|
EVALUATION_MISSING_DATA_UNSPECIFIED |
対応待ちのインシデントはオープンのままです。 新しいインシデントはオープンされません。 |
条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントは対応待ちのままになります。インシデントが対応待ちで、自動クローズ期間にデータが到着しない場合、インシデントはクローズされます。 条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。 |
EVALUATION_MISSING_DATA_ACTIVE |
対応待ちのインシデントはオープンのままです。 新しいインシデントをオープンできます。 |
条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントは対応待ちのままになります。インシデントが対応待ちで、自動クローズ期間に 24 時間を加えた期間にデータが到着しない場合、インシデントはクローズされます。 条件が満たされていない場合、この設定により、指標しきい値条件は指標のない条件のように動作します。再テストの時間枠で指定された時間内にデータが到着しない場合、条件は満たされたと評価されます。1 つの条件のアラート ポリシーの場合、条件が満たされるとインシデントが開かれます。 |
EVALUATION_MISSING_DATA_INACTIVE |
対応待ちのインシデントはクローズされます。 新しいインシデントはオープンされません。 |
条件が満たされている場合、データが到着しなくなると、条件は満たされなくなります。この条件でインシデントが対応待ちの場合、インシデントはクローズされます。 条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。 |