指標しきい値のアラート ポリシーを作成する

このドキュメントでは、Google Cloud コンソールを使用して、指標の値が特定の再テスト ウィンドウのしきい値を上回るかまたは下回ったときに通知を送信する指標ベースのアラート ポリシーを作成する方法について説明します。たとえば、CPU 使用率が 5 分間以上 80% を超えると、アラート ポリシーの条件が満たされます。

このコンテンツは、ログベースのアラート ポリシーには適用されません。ログに特定のメッセージが表示されたときに通知する、ログベースのアラート ポリシーの詳細については、ログのモニタリングをご覧ください。

このドキュメントでは、次の項目については説明しません。

始める前に

  1. Google Cloud コンソールを使用してアラート ポリシーを作成および変更するために必要な権限を取得するには、プロジェクトに対する Monitoring 編集者roles/monitoring.editor)の IAM ロールの付与を管理者に依頼してください。 ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。

    必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

    Cloud Monitoring のロールの詳細については、Identity and Access Management を使用してアクセスを制御するをご覧ください。

  2. アラート ポリシーの一般的なコンセプトに精通していることを確認してください。 このトピックについては、アラートの概要をご覧ください。

  3. アラートの受信に使用する通知チャンネルを構成します。冗長性を確保するために、複数のタイプの通知チャンネルを作成することをおすすめします。詳細については、通知チャンネルを作成して管理するをご覧ください。

通知ポリシーの作成

対象となる指標の値を静的しきい値と比較するアラート ポリシーを作成するには、次のようにします。

  1. Google Cloud コンソールで、 [アラート] ページに移動します。

    [アラート] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。

  2. [ポリシーを作成] を選択します。
  3. モニタリング対象の時系列を選択します。

    1. [指標の選択] をクリックし、メニューの操作でリソースタイプと指標タイプを選択して、[適用] をクリックします。

      [指標を選択] メニューには、使用可能な指標タイプを探すのに役立つ機能が含まれています。

      • 特定の指標タイプを探すには、 フィルタバーを使用します。たとえば、「util」と入力すると、util を含むエントリを表示するようにメニューが制限されます。エントリは、大文字と小文字を「区別しない」テストに合格した場合に表示されます。
      • データが存在しないものも含めて、すべての指標タイプを表示するには、[ アクティブ] をクリックします。デフォルトでは、メニューにはデータを含む指標タイプのみが表示されます。詳細については、指標がメニューに表示されないをご覧ください。

      組み込み指標またはユーザー定義の指標をモニタリングできます。

    2. 省略可: 前の手順で選択した指標とリソースタイプに一致する時系列のサブセットをモニタリングするには、[フィルタを追加] をクリックします。フィルタ ダイアログで、フィルタに使用するラベル、比較対象、フィルタ値を選択します。たとえば、フィルタ zone =~ ^us.*.a$ はゾーン名が us で始まり a で終わるすべての時系列データに一致する正規表現を使用します。詳細については、選択した時系列をフィルタするをご覧ください。

    3. 省略可: 時系列のポイントの配置方法を変更するには、データの変換セクションで、ローリング ウィンドウおよび ローリング ウィンドウ関数を設定します。

      ログベースの指標をモニタリングする場合は、[ローリング ウィンドウ] メニューを 10 分以上に設定することをおすすめします。

      これらのフィールドは、ウィンドウに記録されるポイントの組み合わせ方を指定します。たとえば、ウィンドウが 15 分で、ウィンドウ関数が max であるとします。整列されたポイントは、直近の 15 分間にあるすべてのポイントの最大値となります。詳細については、アライメント: 系列内の正則化をご覧ください。

      [ローリング ウィンドウ関数] フィールドを [percent change] にすることで、指標値の変化率をモニタリングすることもできます。詳細については、変化率のモニタリングをご覧ください。

    4. 省略可: ポリシーによってモニタリング対象の時系列の数を減らす場合や、時系列のコレクションのみをモニタリングする場合は、時系列を結合します。たとえば、各 VM インスタンスの CPU 使用率をモニタリングする代わりに、ゾーン内のすべての VM の CPU 使用率の平均を計算し、その平均値をモニタリングすることもできます。デフォルトでは、時系列は結合されません。一般的なことについては、縮小: 時系列の結合をご覧ください。

      すべての時系列を結合するには、次の操作を行います。

      1. [時系列間] セクションで、 [開く] をクリックします。
      2. [時系列集計] フィールドを none 以外の値に設定します。たとえば、時系列の平均値を表示するには、mean を選択します。
      3. [時系列のグループ化の基準] フィールドが空であることを確認します。

      ラベル値で時系列を結合またはグループ化するには、次の操作を行います。

      1. [時系列間] セクションで、 [開く] をクリックします。
      2. [時系列集計] フィールドを none 以外の値に設定します。
      3. [時系列のグループ化の基準] フィールドで、グループ化するラベルを選択します。

      たとえば、zone ラベルでグループ化し、集計フィールドを mean に設定すると、グラフには、データが存在するゾーンごとに 1 つの時系列が表示されます。特定のゾーンに表示される時系列は、そのゾーンを含むすべての時系列の平均です。

    5. [次へ] をクリックします。

  4. 条件のトリガーを構成します。

    1. [条件タイプ] フィールドはデフォルト値の [しきい値] のままにします。

    2. 省略可: [Alert trigger] メニューを更新します。次の値が表示されます。

      • 任意の時系列の違反: デフォルト設定。再テスト ウィンドウ全体でしきい値に違反している時系列では、条件が満たされます。

      • 時系列の違反の割合: 条件が満たされる前に、再テスト ウィンドウ全体で時系列の割合がしきい値に違反している必要があります。たとえば、モニタリング対象の時系列の 50% が再テスト ウィンドウ全体でしきい値に違反した場合に通知を受け取ることができます。

      • 時系列の違反の数: 条件が満たされる前に、特定の数の時系列が再テスト ウィンドウ全体でしきい値に違反している必要があります。たとえば、モニタリング対象の時系列の 32% が再テスト ウィンドウ全体でしきい値に違反した場合に通知を受け取ることができます。

      • 全時系列の違反: 条件が満たされる前に、すべての時系列が再テスト ウィンドウ全体でしきい値に違反している必要があります。

      Monitoring が時系列データの調整と測定に使用する間隔については、アライメント期間と再テスト ウィンドウをご覧ください。

    3. [しきい値の位置] と [しきい値] を使用して、指標の値がしきい値に違反するタイミングを入力します。たとえば、これらの値を [しきい値より上] と [0.3] に設定すると、0.3 より高い測定値はしきい値に違反します。

    4. 省略可: 測定値がしきい値に違反して Monitoring が通知を送信するまでの期間を選択するには、[詳細オプション] を展開して [再テスト ウィンドウ] メニューを使用します。

      デフォルト値は [再テストなし] です。この設定では、1 回の測定で通知を行えます。詳細情報と例については、アライメント期間と期間の設定をご覧ください。

    5. 省略可: データの受信が停止したときに Monitoring が条件を評価する方法を指定するには、[詳細オプション] を開いて [Evaluation missing data] メニューを使用します。

      [再テスト ウィンドウ] の値が [再テストなし] の場合は、[評価の欠落データ] メニューが無効になります。

      Google Cloud コンソール
      [欠落データの評価] フィールド
      概要 詳細
      欠落データがない 対応待ちのインシデントはオープンのままです。
      新しいインシデントはオープンされません。

      条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントはオープンのままになります。インシデントが対応待ちで、データが送られてこない場合、自動クローズ タイマーは 15 分以上の時間をおいて開始されます。タイマーの期限が切れると、インシデントはクローズされます。

      条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。

      欠落データポイントが、ポリシーに違反する値として扱われる 対応待ちのインシデントはオープンのままです。
      新しいインシデントをオープンできます。

      条件が満たされている場合、データが到着しなくなっても、条件は引き続き満たされます。この条件でインシデントが対応待ちの場合、インシデントはオープンのままになります。インシデントが対応待ちで、自動クローズ期間に 24 時間を加えた期間にデータが到着しない場合、インシデントはクローズされます。

      条件が満たされない場合は、この設定により、指標しきい値の条件が metric-absence condition のように動作します。再テストの時間枠で指定された時間内にデータを受信しない場合は、条件が満たされたと評価されます。条件が 1 つのアラート ポリシーでは、条件が満たされるとインシデントが開始されます。

      欠落データポイントが、ポリシーに違反しない値として扱われる 対応待ちのインシデントはクローズされます。
      新しいインシデントはオープンされません。

      条件が満たされている場合、データの受信が停止すると、その条件は満たされなくなります。この条件のインシデントが対応待ちの場合、インシデントはクローズされます。

      条件が満たされていない場合、データが到着しなくなっても、条件は引き続き満たされません。

    6. [次へ] をクリックします。

  5. 省略可: 複数の条件を含むアラート ポリシーを作成します。

    ほとんどのポリシーは、1 つの指標タイプをモニタリングします。たとえば、ポリシーで VM インスタンスに書き込まれたバイト数をモニタリングする場合があります。複数の指標タイプをモニタリングする場合は、複数の条件を含むポリシーを作成します。各条件は 1 つの指標タイプをモニタリングします。条件を作成したら、条件の組み合わせ方法を指定します。詳細については、複数の条件を持つポリシーをご覧ください。

    複数の条件を持つアラート ポリシーを作成するには、次の操作を行います。

    1. 追加する条件ごとに、[条件を追加] をクリックして条件を構成します。
    2. [次へ] をクリックして、条件の組み合わせ方を構成します。
    3. [次へ] をクリックして通知とドキュメントの設定に進みます。
  6. 通知を構成します。

    1. [通知と名前] メニューを展開して通知チャネルを選択します。冗長性を確保するために、複数のタイプの通知チャンネルをアラート ポリシーに追加することをおすすめします。詳細については、通知チャンネルを管理するをご覧ください。

    2. インシデントがクローズされたときに通知を受け取るには、[Notify on incident closure] を選択します。 デフォルトでは、Google Cloud コンソールでアラート ポリシーを作成すると、インシデントが作成されたときにのみ通知が送信されます。

    3. 省略可: データの受信が停止してからインシデントがクローズされるまでの Monitoring の待機時間を変更するには、[インシデントの自動クローズ期間] メニューからオプションを選択します。 デフォルトでは、データの受信が停止すると、Monitoring は対応待ちのインシデントがクローズされるまで 7 日間待機します。

    4. [Policy severity level] メニューからオプションを選択します。インシデントや通知に重大度レベルが表示されます。

    5. 省略可: アラート ポリシーにカスタムラベルを追加するには、[Policy user labels] セクションで、次の操作を行います。

      1. [ラベルを追加] をクリックして、[キー] フィールドにラベルの名前を入力します。ラベル名の先頭は小文字にする必要があり、小文字、数字、アンダースコア、ダッシュを使用できます。たとえば、「severity」と入力します。
      2. [] をクリックして、ラベルの値を入力します。ラベルの値には、英小文字、数字、アンダースコア、ダッシュを使用できます。たとえば、「critical」と入力します。

      ポリシーラベルを使用して通知を管理する方法については、インシデントにラベルでアノテーションを付けるをご覧ください。

  7. 省略可: [ドキュメント] セクションで、通知に含めるコンテンツを入力します。

    ドキュメントのフォーマットには、書式なしテキスト、Markdown、変数を使用できます。内部プレイブック、Google Cloud ダッシュボード、外部ページへのリンクなど、ユーザーがインシデントをデバッグするのに役立つリンクを含めることもできます。たとえば、次のドキュメント テンプレートは、gce_instance リソースの CPU 使用率インシデントを表し、アラート ポリシーと条件 REST リソースを参照するためのいくつかの変数が含まれています。ドキュメント テンプレートは、デバッグに役立つ外部ページにユーザーを誘導します。

    通知が作成されると、Monitoring によってドキュメント変数が通知の値に置き換えられます。この値は通知でのみ変数に置き換えられます。Google Cloud コンソールのプレビュー ペインやその他の場所では、Markdown の書式設定のみが表示されます。

    プレビュー

    ## CPU utilization exceeded
    
    ### Summary
    
    The ${metric.display_name} of the ${resource.type}
    ${resource.label.instance_id} in the project ${resource.project} has
    exceeded 90% for over 15 minutes.
    
    ### Additional resource information
    
    Condition resource name: ${condition.name}  
    Alerting policy resource name: ${policy.name}  
    
    ### Troubleshooting and Debug References
    
    Repository with debug scripts: example.com  
    Internal troubleshooting guide: example.com  
    ${resource.type} dashboard: example.com
    

    通知の形式

    通知でのドキュメントの表示例

    詳細については、ユーザー定義のドキュメントで通知にアノテーションを付けるチャネル コントロールの使用をご覧ください。

  8. [アラート名] をクリックして、アラート ポリシーの名前を入力します。

  9. [ポリシーを作成] をクリックします。

選択した時系列をフィルタする

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

フィルタは、ラベル、コンパレータ、値で構成されています。たとえば、zone ラベルが "us-central1" で始まるすべての時系列を照合するには、正規表現を使用して比較を行うフィルタ zone=~"us-central1.*" を使用できます。

プロジェクト ID またはリソース コンテナでフィルタする場合は、等号演算子 (=) を使用する必要があります。他のラベルでフィルタする場合は、サポートされている任意のコンパレータを使用できます。通常、指標ラベル、リソースラベル、リソース グループでフィルタできます。

複数のフィルタ条件を指定すると、全条件を満たす時系列のみがモニタリングされます。

フィルタを追加するには、[フィルタを追加] をクリックし、ダイアログの項目を入力して、[完了] をクリックします。ダイアログで [フィルタ] フィールドを使用し、フィルタリング条件を選択し、比較演算子を選択して、値を選択します。次の表の各行には、比較演算子とその意味、例が示されています。

演算子意味
= 平等 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")

トラブルシューティング

このセクションでは、トラブルシューティングのヒントを示します。

利用可能な指標のメニューに指標が表示されない

[指標を選択] メニューに表示されない指標をモニタリングするには、次のいずれかを行います。

  • Google Cloud 指標をモニタリングするアラート ポリシーを作成するには、[指標を選択] メニューを展開し、[ 有効] をクリックします。無効にすると、Google Cloud サービスのすべての指標とデータのあるすべての指標がメニューに表示されます。

  • カスタム指標タイプの条件を、カスタム指標タイプによってデータが生成される前に構成するには、Monitoring フィルタを使用して指標タイプを指定する必要があります。

    1. [?] を選択して[指標の選択] ヘッダーをクリックして、ツールチップの [ダイレクト フィルタモード] を選択します。
    2. モニタリング フィルタまたは時系列セレクタを入力します。構文については、次のドキュメントをご覧ください。

変化率のモニタリング

指標値の変化率をモニタリングするには、[ローリング ウィンドウ関数] フィールドを [変化率] に設定します。条件が評価されると、モニタリングでは指標の変化率をパーセンテージとして計算し、そのパーセンテージを条件のしきい値と比較します。この比較プロセスは 2 つのステップで構成されています。

  1. 時系列に DELTA または CUMULATIVE の指標の種類がある場合、その時系列は GAUGE の指標の種類を持つ時系列に変換されます。変換の詳細については、種類、タイプ、コンバージョンをご覧ください。
  2. モニタリングでは、直近 10 分間のスライディング ウィンドウの平均値を、アライメント期間の開始前の 10 分間のスライディング ウィンドウの平均値と比較することで変化率を計算します。

変化率アラート ポリシーの比較に使用される 10 分間のスライディング ウィンドウは変更できません。ただし、条件を作成するときにアライメント期間を指定できます。

次のステップ