指標ベースのアラート ポリシーのインシデント

インシデントは、アラート ポリシーの条件を満たしたタイミングの記録です。アラート ポリシーに複数の条件が含まれている場合、1 つの条件を満たすだけでインシデントが作成されるかどうかをアラート ポリシーで指定します。通常、条件が満たされている場合に、Cloud Monitoring はインシデントを開き、通知を送信します。ただし、次のような状況ではインシデントは作成されません。

  • ポリシーがスヌーズされているか、無効になっている。
  • アラート ポリシーまたはインシデントの数が、既存のアラートの上限を超えている。

Monitoring は、インシデントごとに [インシデントの詳細] ページを作成します。このページでは、インシデントを管理できるほか、障害のトラブルシューティングに役立つインシデント情報が報告されます。たとえば、[インシデントの詳細] ページには、インシデントのタイムラインと、モニタリング対象の指標データを示すグラフが表示されます。関連するインシデントとログエントリへのリンクも確認できます。

このドキュメントでは、インシデントを検索する方法について説明します。また、[インシデントの詳細] ページを使用して、Cloud Monitoring によって保存された時系列データを評価する指標ベースのアラート ポリシーのインシデントを管理する方法についても説明します。

この機能は Google Cloud プロジェクトでのみサポートされています。App Hub の構成には、App Hub ホスト プロジェクトまたは管理プロジェクトを選択します。

始める前に

インシデントの表示と管理に必要な権限を取得するには、プロジェクトに対する次の IAM ロールの付与を管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

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

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

インシデントを表示

プロジェクトのインシデントを表示するには、 Google Cloud コンソール、gcloud CLI(一般提供)、または Monitoring API(一般提供)を使用します。

Google Cloud コンソール

Google Cloud プロジェクトのインシデントを一覧表示する手順は次のとおりです。

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

    [アラート] に移動

    このページを検索バーで検索する場合は、小見出しが「Monitoring」の結果を選択します。

  2. Google Cloud コンソールのツールバーで、 Google Cloud プロジェクトを選択します。App Hub の構成には、App Hub ホスト プロジェクトまたは管理プロジェクトを選択します。

    [アラート] ページには、アラート ポリシー、スヌーズ、インシデントに関する情報が表示されます。

    • [概要] ペインには、開かれているインシデントの数が一覧表示されます。
    • [インシデント] テーブルには、最新の対応待ちインシデントが表示されます。クローズされたインシデントを含め、テーブル内の最新のインシデントを一覧表示するには、[対応済みのインシデントを表示] をクリックします。
  3. 特定のインシデントの詳細を表示するには、リスト内のインシデントを選択します。

    [インシデントの詳細] ページが開きます。[インシデントの詳細] ページの詳細については、このドキュメントのインシデントを調査するセクションをご覧ください。

古いインシデントを見つける

[アラート] ページの [インシデント] テーブルに、最新の対応待ちのインシデントが表示されます。古いインシデントを表示するには、次のいずれかを行います。

  • [インシデント] テーブルで [ ] または [ それ以前] をクリックし、ページを切り替えてエントリを確認します。

  • インシデントを一覧表示してフィルタできるページを開くには、[すべてのインシデントを表示] をクリックします。[インシデント] ページが開きます。そのページで、次の操作を行います。

    • クローズしたインシデントを含むすべてのインシデントを表示します。すべてのインシデントを表示するには、[クローズしたインシデントを表示] をクリックします。
    • インシデントをフィルタします。フィルタの追加については、インシデントをフィルタするをご覧ください。
    • インシデントを確認またはクローズするか、アラート ポリシーをスヌーズする。これらのオプションにアクセスするには、インシデントの行で [その他のオプション] をクリックし、メニューから項目を選択します。詳細については、インシデントを管理するをご覧ください。

インシデントのフィルタ

テーブルに表示されるインシデントを制限するには、フィルタを追加します。複数のフィルタを追加すると、すべてのフィルタを満たすインシデントのみがテーブルに表示されます。

インシデントのテーブルをフィルタするには、次の操作を行います。

  1. [インシデント] ページで [ テーブルをフィルタリング] をクリックし、フィルタ プロパティを選択します。フィルタ プロパティには、次のものが含まれます。

    • インシデントの状態
    • アラート ポリシーの名前
    • インシデントの開始日、終了日
    • 指標タイプ
    • リソースの種類
  2. サブメニューの値を選択するか、フィルタバーに値を入力します。

    たとえば、[指標タイプ] を選択して「usage_time」と入力すると、サブメニューには次のオプションのみが表示されます。

    agent.googleapis.com/cpu/usage_time
    compute.googleapis.com/guest/container/cpu/usage_time
    container.googleapis.com/container/cpu/usage_time
    

    [インシデント] テーブルにフィルタが一覧表示されます。

gcloud

gcloud を使用して、インシデントを取得したり、インシデントを一覧表示したりできます。

インシデントを取得する

後述のコマンドデータを使用する前に、次のように置き換えます。

  • ALERT_NAME: アラートのリソース名。例: projects/my-project/alerts/my-alert-id

gcloud alpha monitoring alerts describe コマンドを実行します。

Linux、macOS、Cloud Shell

gcloud alpha monitoring alerts describe ALERT_NAME

Windows(PowerShell)

gcloud alpha monitoring alerts describe ALERT_NAME

Windows(cmd.exe)

gcloud alpha monitoring alerts describe ALERT_NAME
このコマンドは、アラートの状態、関連付けられたラベル、ソース アラート ポリシーなどのアラートの詳細を含むレスポンスを返します。この機能がプレビュー版である間は、レスポンスのラベルは変更される可能性があります。レスポンスは次のようになります。
{
  "name": "projects/my-project/alerts/my-alert-id1",
  "state": "OPEN",
  "open_time": "2025-06-11T09:53:46Z",
  "close_time": "2025-06-13T10:11:36Z",
  "resource": {
    "type": "gce_instance",
    "labels": {
      "zone": "us-west1",
      "instance_id": "123456789",
      "project_id": "my-project"
    }
  },
  "metric": {
    "labels": {
      "instance_name": "my-instance1"
    },
    "type": "compute.googleapis.com/instance/cpu/usage_time"
  },
  "policy": {
    "name": "projects/my-project/alertPolicies/POLICY_1",
    "displayName": "my-policy"
  },
  "summaryText": "[ALERT] VM Instance - CPU usage on my-project my-instance1"
}

インシデントの一覧を取得する

gcloud CLI を使用して、プロジェクトのインシデントを一覧表示し、結果をフィルタリングできます。

後述のコマンドデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクトの ID。

gcloud alpha monitoring alerts list コマンドを実行します。

Linux、macOS、Cloud Shell

gcloud alpha monitoring alerts list

Windows(PowerShell)

gcloud alpha monitoring alerts list

Windows(cmd.exe)

gcloud alpha monitoring alerts list
このコマンドは、アラートの状態、関連付けられたラベル、ソース アラート ポリシーなどのアラートの詳細を含むレスポンスを返します。この機能がプレビュー版である間は、レスポンスのラベルは変更される可能性があります。レスポンスは次のようになります。
{
  "alerts": [
    {
      "name": "projects/my-project/alerts/my-alert-id1",
      "state": "OPEN",
      "open_time": "2025-06-11T09:53:46Z",
      "close_time": "2025-06-13T10:11:36Z",
      "resource": {
        "type": "gce_instance",
        "labels": {
          "zone": "us-west1",
          "instance_id": "123456789",
          "project_id": "my-project"
        }
      },
      "metric": {
        "labels": {
          "instance_name": "my-instance1"
        },
        "type": "compute.googleapis.com/instance/cpu/usage_time"
      },
      "policy": {
        "name": "projects/my-project/alertPolicies/POLICY_1",
        "displayName": "my-policy"
      },
      "summaryText": "[ALERT] VM Instance - CPU usage on my-project my-instance1"
    }
  ]
}
次のオプション フラグを使用して、出力をフィルタ、並べ替え、変更することもできます。
  • --filter: フィルタ式を指定して、時間またはラベルでアラートをフィルタします。たとえば、--filter='close_time>="2025-09-10T00:00:00Z"' で時間でフィルタしたり、--filter='resource.labels.key="value"' でラベルでフィルタしたりします。

  • --sort-by: 出力を並べ替えるフィールドのカンマ区切りのリスト。例: --sort-by=open_time

  • --uri: コマンドは、デフォルトの出力ではなく、リソース URI のリストを出力します。

  • --limit: 返されるアラートの数を制限するには、このフラグを 2 以上に設定します。このフラグは --filter フラグと組み合わせて使用しないでください。

Monitoring API

Monitoring API を使用して、インシデントを取得し、インシデントを一覧表示できます。

インシデントを取得する

Monitoring API で単一のインシデントの詳細を取得するには、alerts.get メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクトの ID。
  • ALERT_ID: アラートの ID。

HTTP メソッドと URL:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/alerts/ALERT_ID

リクエストを送信するには、次のいずれかのオプションを展開します。

このコマンドは、アラートの状態、関連付けられたラベル、ソース アラート ポリシーなどのアラートの詳細を含むレスポンスを返します。この機能がプレビュー版である間は、レスポンスのラベルは変更される可能性があります。レスポンスは次のようになります。
{
  "name": "projects/my-project/alerts/my-alert-id1",
  "state": "OPEN",
  "open_time": "2025-06-11T09:53:46Z",
  "close_time": "2025-06-13T10:11:36Z",
  "resource": {
    "type": "gce_instance",
    "labels": {
      "zone": "us-west1",
      "instance_id": "123456789",
      "project_id": "my-project"
    }
  },
  "metric": {
    "labels": {
      "instance_name": "my-instance1"
    },
    "type": "compute.googleapis.com/instance/cpu/usage_time"
  },
  "policy": {
    "name": "projects/my-project/alertPolicies/POLICY_1",
    "displayName": "my-policy"
  },
  "summaryText": "[ALERT] VM Instance - CPU usage on my-project my-instance1"
}

インシデントの一覧を取得する

プロジェクト内のインシデントを一覧表示し、Monitoring API で結果をフィルタするには、alerts.list メソッドを使用します。

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクトの ID。

HTTP メソッドと URL:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/alerts

リクエストを送信するには、次のいずれかのオプションを展開します。

このコマンドは、アラートの状態、関連付けられたラベル、ソース アラート ポリシーなどのアラートの詳細を含むレスポンスを返します。この機能がプレビュー版である間は、レスポンスのラベルは変更される可能性があります。レスポンスは次のようになります。
{
  "alerts": [
    {
      "name": "projects/my-project/alerts/my-alert-id1",
      "state": "OPEN",
      "open_time": "2025-06-11T09:53:46Z",
      "close_time": "2025-06-13T10:11:36Z",
      "resource": {
        "type": "gce_instance",
        "labels": {
          "zone": "us-west1",
          "instance_id": "123456789",
          "project_id": "my-project"
        }
      },
      "metric": {
        "labels": {
          "instance_name": "my-instance1"
        },
        "type": "compute.googleapis.com/instance/cpu/usage_time"
      },
      "policy": {
        "name": "projects/my-project/alertPolicies/POLICY_1",
        "displayName": "my-policy"
      },
      "summaryText": "[ALERT] VM Instance - CPU usage on my-project my-instance1"
    }
  ]
}
Curl ユーザーは、--data-urlencode フラグの後にフィルタ式を追加して、時間またはラベルでアラートをフィルタできます。次の例をご覧ください。

過去 1 時間以内に開かれたアラートを一覧表示します。

--data-urlencode "filter=(open_time>=\"`date -u -d "1 hour ago" +"%Y-%m-%dT%H:%M:%SZ"`\")"

過去 1 日間にオープンしたアラートを一覧表示してフィルタします。

--data-urlencode "filter=(open_time>=\"`date -u -d "1 DAY ago" +"%Y-%m-%dT%H:%M:%SZ"`\" AND state=open)"

2 つの期間の間にオープンされたアラートを一覧表示してフィルタします。

--data-urlencode "filter=(open_time>=\"`date -u -d "2 DAY ago" +"%Y-%m-%dT%H:%M:%SZ"`\" AND open_time<=\"`date -u -d "1 DAY ago" +"%Y-%m-%dT%H:%M:%SZ"`\")"

ユーザーラベルでアラートを一覧表示してフィルタします。この例では、名前が app で値が my-gke-app のユーザーラベルでフィルタします。

--data-urlencode "filter=(policy.user_labels.app=\"my-gke-app\")"
Powershell ユーザーは、次の例を使用して、リクエスト URL に時間ベースのフィルタを追加できます。
$baseUrl = "https://monitoring.googleapis.com/v3/projects/my-project/alerts"
$filterValue = (Get-Date).AddHours(-1).ToString("yyyy-MM-ddTHH:mm:ssZ")
$filter = 'open_time >= "' + $filterValue + '"'
$encodedFilter = [System.Uri]::EscapeDataString($filter)
$url = $baseUrl + "?filter=" + $encodedFilter

インシデントを調査する

[インシデントの詳細] ページには、インシデントの原因を特定する際に役立つ情報が表示されます。

指標データを調べる

インシデントの発生前後の指標の状態を分析するには、[Alert Metrics] グラフを使用します。このグラフには、タイムラインと、アラート ポリシーの条件を満たした時系列が表示されます。

タイムラインの範囲を調整して、インシデントに関連する指標データの傾向とパターンを確認できます。

  • 条件が満たされた原因となった時系列のみを表示するか、条件が評価するすべての時系列を表示するかを切り替えるには、すべての時系列を表示します)をクリックします。

  • グラフに表示される期間を変更するには、ツールバーの期間セレクタを使用するか、ポインタでグラフ上の期間をハイライト表示します。

Metrics Explorer で指標データを表示して、より詳細に分析することもできます。これを行うには、[Alert Metrics] グラフに移動し、[ データを分析] をクリックします。デフォルトでは、Metrics Explorer は指標データを集計してフィルタし、指標グラフが [Alert Metrics] タイムラインに表示される時系列と一致するようにします。

ログエントリを調べる

[インシデントの詳細] ページの [ログ] ペインには、指標のモニタリング対象リソースのリソースタイプとラベルに一致するログエントリが表示されます。これらのログエントリを分析して、インシデントのトラブルシューティングに役立つ追加情報を確認できます。

  • ログ エクスプローラでログエントリを表示するには、[ログ エクスプローラで表示] をクリックし、スコーピング プロジェクトを選択します。ログ エクスプローラには、関連するログエントリが作成されたときのタイムラインなど、ログエントリ データを分析するための追加ツールが用意されています。
  • Metrics Explorer でログエントリのフィルタに使用されるクエリを表示して編集するには、[ データを分析] をクリックします。

アプリケーション情報を表示する

App Hub アプリケーションに関連付けられているアラート ポリシーについては、[ アプリケーションに関連付けられています] セクションに移動します。このセクションの 1 つのエントリには、アプリケーション ID と、アプリケーションに関する情報を表示するダッシュボードへのリンクが表示されます。2 つ目のエントリには、ワークロードまたはサービスが一覧表示され、ダッシュボードにリンクされています。

補足情報を表示する

[ラベル] セクションには、インシデントの原因となった時系列のモニタリング対象リソースと指標のラベルと値、アラート ポリシーで定義されたユーザーラベルが表示されます。この情報は、インシデントの原因となった具体的なモニタリング対象リソースの特定に役立ちます。詳細については、アラートにラベルでアノテーションを付けるをご覧ください。

[ドキュメント] セクションには、アラート ポリシーの作成時に指定した通知のドキュメント テンプレートが表示されます。この情報には、アラート ポリシーがモニタリングする内容の説明と、対策のヒントを含めることができます。詳細については、ユーザー定義のドキュメントで通知にアノテーションを付けるをご覧ください。

アラート ポリシーのドキュメントを構成しなかった場合、[ドキュメント] ペインには「ドキュメントが構成されていません」と表示されます。

アプリケーション全体の根本的な問題を特定するには、他のアラート ポリシーの条件に関連するインシデントを調べます。

[関連インシデント] セクションには、次のいずれかの条件に一致するインシデントのリストが表示されます。

  • このインシデントは、同じアラート ポリシーの条件が満たされたときに作成された。
  • このインシデントは、[インシデントの詳細] ページに表示されるインシデントとラベルを共有している。

インシデントを管理する

インシデントは次のいずれかの状態になります。

  •  オープン: アラート ポリシーの一連の条件が満たされる途中にあるか、条件が満たされなくなったことを示すデータが存在しません。アラート ポリシーに複数の条件が含まれている場合は、条件の組み合わせに応じてインシデントが開かれます。詳細については、複数の条件を持つポリシーをご覧ください。

  •  確認済み: インシデントが開かれていて、手動で確認済みとしてマークされています。通常、このステータスは、そのインシデントが調査中であることを示します。

  •  終了済み: システムにより条件を満たしている状態が終了し、インシデントをクローズしたと判断されたか、満たされるべき条件の継続が見られないまま 7 日間が経過しました。

アラート ポリシーを構成する場合は、安定状態によってすべてが正常な状態であることを示すシグナルが生成されるようにします。これは、エラーのない状態を識別し、インシデントが開いている場合にそのインシデントをクローズできるようにするために必要となります。エラー状態が停止されたことを示すシグナルがない場合、インシデントが開かれた後、アラート ポリシーが発行されてから 7 日間は開かれたままとなります。

たとえば、エラー数が 0 を超えたときに通知するアラート ポリシーを作成する場合、エラーがないときはエラー数が 0 になるようにします。エラーがない状態でアラート ポリシーが null または空を返す場合は、エラーがいつ終了したかを示すシグナルは存在しません。必要に応じて、測定値が使用できないときに使用されるデフォルト値を指定できます。

インシデントを確認する

インシデントの原因調査を開始するときは、インシデントに確認済みのマークを付けることをおすすめします。

インシデントに確認済みのマークを付けるには、次の操作を行います。

  1. [アラート] ページの [インシデント] テーブルで、[すべてのインシデントを表示] をクリックします。
  2. [インシデント] ページで、確認するインシデントを見つけて、次のいずれかを行います。

    • その他のオプション)をクリックし、[確認] を選択します。
    • インシデントの詳細ページを開いて、[インシデントを確認する] をクリックします。

アラート ポリシーが繰り返し通知を送信するように構成されている場合、インシデントを確認しても通知は停止しません。停止するには、次のいずれかを行います。

  • アラート ポリシーのスヌーズを作成する。
  • アラート ポリシーを無効にする。

アラート ポリシーをスヌーズする

特定の期間に Monitoring でインシデントが作成されて通知が送信されないようにするには、関連するアラート ポリシーをスヌーズします。アラート ポリシーをスヌーズすると、Monitoring によってアラート ポリシーに関連するすべてのインシデントもクローズされます。

表示しているインシデンスのスヌーズを作成するには、次の操作を行います。

  1. [インシデントの詳細] ページで、[ポリシーをスヌーズ] をクリックします。

  2. スヌーズ期間を選択します。スヌーズ期間を指定すると、スヌーズがすぐに開始されます。

[インシデント] ページから、スヌーズするインシデントを見つけて その他のオプション)をクリックし、[スヌーズ] を選択して、アラート ポリシーをスヌーズすることもできます。サービス停止中はアラート ポリシーをスヌーズして、トラブルシューティング プロセス中に通知が届かないようにすることができます。

インシデントをクローズする

Monitoring によりインシデントをクローズするか、モニタリング データの到着が停止した後にインシデントをクローズすることができます。インシデントをクローズした後で、条件が満たされたことを示すデータが到着した場合、新しいインシデントが作成されます。インシデントをクローズしても、同じ条件で対応待ちになっている他のインシデントはクローズされません。アラート ポリシーをスヌーズすると、スヌーズの開始時に対応待ちのインシデントがクローズされます。

次のいずれかが発生すると、Monitoring によってインシデントが自動的にクローズされます。

  • 指標しきい値条件:

    • しきい値が違反していないことを示すモニタリング データが届きます。
    • モニタリング データは到着せず、条件は、モニタリング結果の到着が停止したときにインシデントをクローズするように構成され、基盤となるリソースの状態が不明か、無効になっていません。

    • アラート ポリシーの自動クローズ期間にモニタリング データが到着せず、モニタリング データの受信が停止したときにインシデントを自動的にクローズするように条件が構成されていません。自動クローズ期間を構成するには、 Google Cloud コンソールまたは Monitoring API を使用します。デフォルトの自動クローズ期間は 7 日間です。自動クローズの最短期間は 30 分です。

  • 指標の不在条件:

    • モニタリング データが発生します。
    • アラート ポリシーの自動クローズ期間の終了後 24 時間、モニタリング データが到着しません。自動クローズ期間を構成するには、 Google Cloud コンソールまたは Monitoring API を使用します。デフォルトの自動クローズ期間は 7 日間です。
  • 予測条件:

    • 予測が生成され、時系列が予測ウィンドウ内でしきい値に違反することはないと予測されます。
    • モニタリング データが 10 分間到着しません。条件は、モニタリング データの受信を停止したときにインシデントをクローズするように構成されており、基盤となるリソースの状態が不明か、無効になっていません。

    • アラート ポリシーの自動クローズ期間にモニタリング データが到着せず、モニタリング データの受信が停止したときにインシデントを自動的にクローズするように条件が構成されていません。

たとえば、連続する 10 分間に対して HTTP レスポンスのレイテンシが 2 秒を超えたため、アラート ポリシーによってインシデントが生成されました。HTTP レスポンス レイテンシの次の測定値が 2 秒未満の場合、インシデントはクローズされます。同様に、7 日間データがまったく受信されなかった場合、インシデントはクローズされます。

インシデントをクローズする手順は次のとおりです。

  1. [アラート] ページの [インシデント] テーブルで、[すべてのインシデントを表示] をクリックします。
  2. [インシデント] ページで、クローズするインシデントを見つけて、次のいずれかを行います。

    • もっと見る)をクリックし、[インシデントを閉じる] を選択します。
    • そのインシデントの [インシデントの詳細] ページを開き、[インシデントを閉じる] をクリックします。

Unable to close incident with active conditions」というメッセージが表示された場合、最新のアラート期間内にデータが受信されているため、インシデントをクローズできません。

Unable to close incident. Please try again in a few minutes.」というメッセージが表示された場合、内部エラーのためインシデントをクローズできません。

データの保持と上限

インシデントの制限と保持期間の詳細については、アラートの上限をご覧ください。

次のステップ