指標を選択して構成する

このドキュメントでは、アラート ポリシーの条件を構成するときに設定するフィールドについて説明します。通常、アラート ポリシーは、仮想マシンの CPU 使用率などの時系列データが特定の条件を満たすときに通知を受けたい場合に作成します。このコンテンツは、ログベースのアラート ポリシーには適用されません。ログに特定のメッセージが表示されたときに通知する、ログベースのアラート ポリシーの詳細については、ログのモニタリングをご覧ください。

表示するデータを選択する

アラート ポリシーを作成する際、表示する指標を指定するには、指標とリソースタイプの値を指定します。

  • [指標] フィールドは、モニタリング対象リソースから収集される測定値を識別します。これには、測定対象および測定値がどのように解釈されるかについての説明が含まれます。指標 は、指標タイプの短縮形です。コンセプトについては、指標タイプをご覧ください。

  • [リソースタイプ] フィールドは、指標データがキャプチャされるリソースを指定します。リソースタイプは、モニタリング対象リソースタイプまたはリソースとも呼ばれます。コンセプトについては、モニタリング対象リソースをご覧ください。

Monitoring では、多くの事前定義済み指標タイプやモニタリング対象リソースが利用できます。また、カスタム指標を指定することもできます。

  • 定義済みの指標タイプの詳細は、指標の一覧をご覧ください。各ドキュメントには、サービスの種類別に指標が列挙されます。たとえば、Google Cloud の指標ページには、Google Cloud サービスごとに 1 つずつ、一連のテーブルが含まれます。

  • 使用可能なモニタリング対象リソースのタイプについては、モニタリング対象リソースのリストをご覧ください。

  • 独自の指標の定義については、カスタム指標の使用をご覧ください。

アラート ポリシーは、Cloud Monitoring によりインターフェースを更新して作成します。お使いのインターフェースに対応するタブを選択します。

以前のインターフェース

指標を選択するには、[Find resource type and metric] フィールドを使用して、リソースタイプと指標タイプを 1 つずつ選択します。どちらを先に選択してもかまいません。まず、フィールドをクリックします。前の選択に応じて、1 つまたは 2 つのリストが表示されます。次のスクリーンショットのように、リストのヘッダーに Resource types または Metrics が表示されます。

指標とリソースを選択するための検索リスト

次のいずれかの方法でエントリを選択します。

  • リストからエントリを選択する。

  • モニタリング フィルタを入力する。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"
    

    指標フィルタを入力する方法は次のとおりです。

    1. [Find resource type and metric] の隣にある、[Help] をクリックします。
    2. [ヘルプ] ペインで [Direct filter mode] をクリックします。

      [Direct filter mode] が有効な場合、[Find resource type and metric] オプションが [Resource type, metric, and filter] という名前の編集可能なテキスト ボックスに置き換わります。

      [Direct filter mode] が表示されます。

      [Direct filter mode] を選択する前にリソースタイプ、指標、フィルタを選択した場合、これらの設定が [Resource type, metric, and filter] テキスト ボックスへの事前入力に使用されます。

    3. [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 モードを使用します。

    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_withends_with の両方のフィルタ文字列を使用して、米国の「a」ゾーンのみを表示できます。

複数フィルタの使用例。

zone="starts_with("asia-east1")" フィルタまたは zone=~"asia-east1.*" フィルタを使用すると、asia-east1 ゾーンのいずれかからのデータを含む時系列のみが表示されます。

フィルタリングされた時系列が表示されます。

プレビューのインターフェース

モニタリング対象のデータの量を減らすには、フィルタ条件を指定するか、集約を適用します。フィルタにより、一定の条件を満たす時系列のみが使用されるようになります。フィルタを適用すると、評価対象の時系列が少なくなり、アラートのパフォーマンスが向上します。

複数のフィルタ条件を指定すると、対応するグラフには、すべての条件を満たす時系列(論理 AND)だけが表示されます。

フィルタを追加するには、[フィルタを追加] をクリックし、ダイアログを完成させて、[DONE] をクリックします。ダイアログで、[Filter] フィールドを使用してフィルタする基準を選択します。たとえば、リソース グループ、名前、リソースラベル、ゾーン、指標ラベルでフィルタリングできます。フィルタ条件を選択したら、比較演算子と値を選択してフィルタを完成させます。次の表では、比較演算子、その意味、例を示します。

演算子意味
= 平等 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 によって受信された時系列を、固定間隔でデータポイントを持つ新しい時系列に変換するプロセスです。アライメントのプロセスは、次のステップで構成されます。

  1. 時系列を一連の固定長の間隔に分割する。
  2. 各間隔で受信したすべてのデータポイントを収集し、それらのデータポイントを集約する関数を適用する。たとえば、この関数を選択すると、すべてのサンプルの平均が計算されます。
  3. 前のステップで計算された値にタイムスタンプを関連付け、アライメントされた時系列にそのペアを追加します。

アライメントの概要については、アライメント: 系列内の正則化をご覧ください。

以前のインターフェース

アラート ポリシーの条件を作成するときは、アライメント パラメータを指定する必要があります。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 では、このフィールドは Aligner と呼ばれます。使用可能な関数ついての詳細は、API リファレンスの Aligner をご覧ください。一部の Aligner 関数では、データの整列と別の種類の指標への変換の両方が行われます。詳細については、種類、タイプ、変換をご覧ください。

時系列を結合する

異なる時系列を組み合わせることで、指標に対して返されるデータの量を減らすことができます。複数の時系列を組み合わせるには、通常、グループ化と関数を指定します。グループ化はラベル値で行います。関数は、グループ内のすべての時系列を新しい時系列に結合する方法を定義します。

以前のインターフェース

グループを追加するには、[Group by] テキスト ボックス内のテキストをクリックし、メニューから選択します。メニューは、選択したリソースと指標の時系列データに基づいて動的に作成されます。グループ化とフィルタリングでは、同じラベルセットを使用します。

最初のラベルを追加すると、次のようになります。

  • アグリゲータが選択されます。表示されるデータの種類によって、デフォルトのアグリゲータが決まります。ただし、この関数は変更できます。
  • アグリゲータは、同じラベル値を持つ時系列を 1 つの時系列に結合する方法を決定します。
  • グラフには、[Group by] テキスト ボックスに記載されているラベルの値ごとに 1 つの時系列が表示されます。

複数のラベルでグループ化した場合、アグリゲータは指定されたラベルついて、同じ値を持つ時系列を結合します。

グループ化オプションを指定せずにアグリゲータを指定すると、関数は選択したすべての時系列に適用され、1 つの時系列になります。

次のスクリーンショットは、アグリゲータが sum のデフォルト値に設定された、user_labels.version によるグループ化を示しています。

グループ化の設定の例

この選択により、ラベル user_labels.version の値ごとに 1 つの時系列が生成されます。各時系列のデータポイントは、特定バージョンの個別の時系列のすべての値の合計から計算されます。

user_labels.version でグループ化された時系列の表示

プレビューのインターフェース

時系列を集約するオプションにアクセスするには、[時系列をまたぐ] セクションの [もっと見る] をクリックします。

ラベル値で時系列を集約するには、テキスト [時系列グループ条件] をクリックし、メニューから選択します。メニューは、選択した時系列に基づいて動的に構成されます。

最初のラベルを追加すると、次のようになります。

  • 時系列集計フィールドが none に設定されているため、エラーが表示されます。このエラーを解決するには、同じラベル値で時系列を集約する関数を選択します。

  • グラフには、[時系列グループ条件] フィールドに列挙されたラベルの値ごとに 1 つの時系列が表示されます。

グループ化オプションを指定せずに集計関数を指定すると、関数は選択したすべての時系列に適用され、1 つの時系列になります。

複数のラベルでグループ化できます。グループ化の選択肢が複数ある場合は、選択したラベルに対して同じ値を持つ一連の時系列にアグリゲータが適用されます。

結果のグラフには、ラベル値の組み合わせごとに 1 つの時系列が表示されます。ラベルを指定する順序は問題になりません。

たとえば、次のスクリーンショットは、user_labels.versionsystem_labels.machine_image によるグループ化を示しています。

バージョンとマシンイメージでグループ化された時系列。

図のように、両方のラベルでグループ化すると、値のペアごとに 1 つの時系列が取得されます。この方法では、ラベルの組み合わせごとに時系列が作成されるため、1 つのグラフに作成する場合よりも多くのデータが作成されます。

グループ化を指定した場合、またはアグリゲータを選択した場合、グラフ化された時系列には、プロジェクト識別子などの必要なラベルと、グループ化で指定されたラベルのみが含まれます。

グループ別条件を削除するには、次の操作を行います。

  1. グループ別ラベルを削除します。
  2. アグリゲータを none に設定します。

二次集計

以前のインターフェース

複数の時系列ですでに集計が表されている場合は、セカンダリ アグリゲータを選択することで、グラフのすべての時系列を 1 つの時系列に削減できます。たとえば、データをゾーンごとにグループ化すると、グラフにはゾーンごとに 1 つの時系列が表示されます。1 つの時系列でグラフを作成するには、セカンダリ集計フィールドを使用します。

プレビューのインターフェース

プライマリ データ変換の後に複数の時系列が表示されており、アラート ポリシーで 1 つの時系列をモニタリングする必要がある場合は、[セカンダリ データ変換] フィールドを使用します。