スヌーズの作成と管理

このドキュメントでは、スヌーズを作成して管理する方法について説明します。スヌーズを使用すると、Cloud Monitoring で特定の期間にインシデントが作成され、通知が発行されないようにすることができます。各スヌーズで適用するリソースを指定します。

コンセプトの概要については、通知とインシデントのスヌーズをご覧ください。

スヌーズを作成、管理するには、 Google Cloud コンソールまたは Cloud Monitoring API を使用します。

この機能は Google Cloud プロジェクトでのみサポートされています。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。

始める前に

アラート ポリシーを保存する Google Cloud プロジェクトで、次の操作を行います。

  1. 必要な権限があることを確認します。

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

  2. このドキュメントの Cloud Monitoring API の例を使用する場合は、次の操作を行います。

    1. Google Cloud プロジェクト ID を保存する環境変数である PROJECT_ID を作成します。

      PROJECT_ID=PROJECT_ID
    2. Google Cloud CLI に対して認証を行います。

      gcloud auth login
    3. デフォルトの Google Cloud プロジェクトを設定します。

      gcloud config set project ${PROJECT_ID}
    4. 認可トークンを作成します。

      ACCESS_TOKEN=`gcloud auth print-access-token`

      アクセス トークンは定期的に更新する必要があります。動作していたコマンドが急に未認証と報告された場合は、このコマンドを再発行します。

スヌーズを作成する

アラート ポリシーでのインシデントの作成と通知の送信を防ぐには、スヌーズを作成します。

スヌーズは、 Google Cloud コンソール、gcloud CLI、または Cloud Monitoring API を使用して作成できます。

コンソール

Google Cloud コンソールで、対応待ちのインシデントまたは [アラート] ページからスヌーズを作成できます。フィルタ付きのスヌーズは、インシデントの詳細ページでのみ作成できます。

対応待ちのインシデントからスヌーズを作成するには、次のようにします。

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

    [アラート] に移動

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

  2. Google Cloud コンソールのツールバーで、 Google Cloud プロジェクトを選択します。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。
  3. [アラート] ページの [インシデント] ペインでインシデントを見つけて、[インシデントの概要] をクリックします。
  4. [インシデントの詳細] ページで [スヌーズ] をクリックし、スヌーズの時間を指定します。
  5. 省略可: ラベルベースのフィルタをスヌーズに追加するには、[ラベル] セクションに移動して、1 つ以上のラベルを選択します。ラベルには、リソースラベル、指標ラベル、メタデータ ラベルを使用できます。

    通常、スヌーズは、アラート ポリシーによって作成されたすべてのインシデントに適用されます。フィルタを使用すると、フィルタのラベルに一致するラベルを持つインシデントにスヌーズを適用できます。

  6. [スヌーズ] をクリックします。スヌーズが、インシデントを作成したアラート ポリシーに適用されます。

[アラート] ページからスヌーズを作成する手順は次のとおりです。

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

    [アラート] に移動

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

  2. Google Cloud コンソールのツールバーで、 Google Cloud プロジェクトを選択します。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。
  3. [アラート] ページで、[スヌーズを作成] をクリックします。
  4. スヌーズ用にわかりやすい名前を入力します。この名前は [アラート] ページに表示されます。
  5. 開始時刻を選択します。特定の時間を入力します。スヌーズの作成時にスヌーズを開始することもできます。
  6. 期間を入力します。このフィールドの値によって、スヌーズ時間の長さが決まります。
  7. [スヌーズの条件] セクションに入力します。[アラート ポリシー] メニューを使用して、スヌーズに適用するアラート ポリシーを選択できます。

    1 つのスヌーズに最大 16 個のアラート ポリシーを追加できます。

    スヌーズを作成した後で条件の変更はできません。

    [スヌーズの条件] セクションに入力すると、[スヌーズ条件を作成] ペインに、基準に一致する過去のインシデントが一覧表示されます。

  8. [作成] をクリックします。

Cloud Monitoring API

スヌーズを作成するには、Snooze エンドポイントに POST リクエストを発行して snoozes.create メソッドを呼び出します。snooze オブジェクトを指定する必要があります。

curl -d @my-snooze.json -H "Authorization: Bearer $ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-X POST https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/snoozes

上の式で、PROJECT_ID はプロジェクト ID を格納する環境変数です。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。

このメソッドは snooze オブジェクトを返します。"name" フィールドには、Monitoring によって生成されたスヌーズ ID が含まれます。このフィールドは、返されるオブジェクトと my-snooze.json の内容との唯一の相違点です。

{
  "name": "projects/my-project/snoozes/778899",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/001122"
    ]
  },
  "interval": {
    "startTime": "2022-11-12T19:00:20Z",
    "endTime": "2022-11-12T19:05:20Z"
  },
  "displayName": "Snooze2"
}

gcloud CLI

スヌーズを作成するには、gcloud monitoring snoozes create コマンドを実行します。

gcloud monitoring snoozes create --criteria-policies=LIST_OF_POLICIES --display-name=DISPLAY_NAME --start-time=START_TIME --end-time=END_TIME --project=PROJECT_ID

前述のコマンドを実行する前に、次のように置き換えます。

  • LIST_OF_POLICIES: スヌーズが適用されるポリシー。複数のプロジェクトを指定する場合は、カンマで区切ります。
  • PROJECT_ID: プロジェクトの ID。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。
  • DISPLAY_NAME: Google Cloud コンソールに表示する名前。
  • START_TIME: 開始時間。
  • END_TIME: 終了時間。開始時間より 1 分以上遅い時刻にする必要があります。

    開始時間と終了時間は、ISO 8601 のフォーマット規則に従う必要があります。ただし、絶対時間または相対時間を指定できます。次の例では、絶対時間を指定しています。現在の時刻から 30 分後にスヌーズを開始するには、--start-time="+PTM30M" を使用します。

たとえば、次のコマンドは、ID が「12345」のアラート ポリシーのスヌーズを作成します。スヌーズ期間は 2025 年 3 月 1 日から 2025 年 3 月 7 日までです。

gcloud monitoring snoozes create --display-name="Maintenance Week" \
    --criteria-policies="projects/my-project/alertPolicies/12345" \
    --start-time="2025-03-01T03:00:00.0-0500" \
    --end-time="2025-03-07T23:59:59.5-0500" \
    --project=PROJECT_ID

上の例では、my-project に次のスヌーズが作成されます。

{
  "name": "projects/my-project/snoozes/778899",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/12345"
    ]
  },
  "interval": {
    "startTime": "2025-03-01T03:00:00.0-0500",
    "endTime": "2025-03-07T23:59:59.5-0500"
  },
  "displayName": "Maintenance Week"
}

成功すると、このコマンドに対するレスポンスは次のようになります。

Created snooze [projects/my-project/snoozes/778899]

アラート ポリシーの名前は Google Cloud コンソールに表示されません。アラート ポリシーの名前を確認するには、次のいずれかを行います。

  • gcloud alpha monitoring policies list コマンドを実行します。このコマンドのレスポンス データに、アラート ポリシーの名前が含まれます。
  • アラート ポリシーの JSON 表現を表示します。[ポリシーの詳細] ページのオプションを使用して、JSON 表現をローカル システムにダウンロードできます。

定期的なスヌーズを作成する

一定の間隔で発生するスヌーズを作成するには、アラート ポリシーのスヌーズを開始するスクリプトを作成します。次に、cronCloud Scheduler などのジョブ スケジューラを使用して、必要なスケジュールでスクリプトを実行します。

スヌーズを一覧表示する

スヌーズを作成すると、プロジェクトのスヌーズの履歴レコードに追加されます。このレコードには、期限切れ、アクティブ、および今後のスヌーズが表示されます。このレコードからエントリを削除することはできません。つまり、スヌーズを削除することはできません。ただし、このビューにより、スヌーズの詳細を表示したり、スヌーズの編集やコピーなどの操作を行うことができます。

コンソール

スヌーズを一覧表示するには、次の操作を行います。

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

    [アラート] に移動

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

  2. Google Cloud コンソールのツールバーで、 Google Cloud プロジェクトを選択します。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。
  3. [スヌーズ] ペインで [See all snoozes] をクリックします。

    [スヌーズ] ページには、スヌーズの一覧と、過去、現在、予定されているスヌーズをグラフで示すタイムラインが表示されます。

    • スヌーズを編集、コピー、キャンセル、終了するには、[ その他のオプション] メニューを使用します。使用可能なオプションは、スヌーズの状態によって異なります。
    • すべてのスヌーズを一覧表示するには、[過去のスヌーズを表示] を有効にします。デフォルトでは、アクティブなスヌーズと今後のスヌーズのみが表示されます。
    • [タイムライン] テーブルの表示期間を変更するには、[期間] メニューを使用します。デフォルトでは、今後 1 時間のデータが表示されます。ただし、このフィールドを変更して、過去の期間または将来の期間を指定できます。期限切れのスヌーズは 13 か月間保持されます。
    • 特定のスヌーズの詳細を表示するには、[詳細を表示] をクリックします。
    • アクティブなスヌーズの概要を表示するには、[タイムライン] 表の [アクティブ] 行の網掛け部分にポインタを置きます。ツールチップに概要情報が表示されます。
    • アクティブなスヌーズをグラフで表示するには、[タイムライン] 表の [アクティブ] 行を開きます。

Cloud Monitoring API

Google Cloud プロジェクトに属するすべてのスヌーズを一覧表示するには、snoozes.list メソッドを呼び出します。

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/snoozes

上の式で、PROJECT_ID はプロジェクト ID を格納する環境変数です。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。

このメソッドは、snooze オブジェクトのリストを返します。たとえば、プロジェクトに 1 つのスヌーズがある場合、snoozes.list コマンドに対するレスポンスは次のようになります。

{
  "name": "projects/my-project/snoozes/778899",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/12345"
    ]
  },
  "interval": {
    "startTime": "2025-03-01T03:00:00.0-0500",
    "endTime": "2025-03-07T23:59:59.5-0500"
  },
  "displayName": "Snooze2"
}

特定のスヌーズに関する情報を取得するには、snoozes.get メソッドを呼び出して、プロジェクト ID とスヌーズ ID を指定します。上記のレスポンスでは、スヌーズ ID は 2986663705844383744 です。

curl -H "Authorization: Bearer $ACCESS_TOKEN" \
https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/snoozes/${SNOOZE_ID}

このメソッドは、単一の snooze オブジェクトを返します。

{
  "name": "projects/my-project/snoozes/778899",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/12345"
    ]
  },
  "interval": {
    "startTime": "2025-03-01T03:00:00.0-0500",
    "endTime": "2025-03-07T23:59:59.5-0500"
  },
  "displayName": "Snooze2"
}

gcloud CLI

現在のプロジェクトのスヌーズを一覧表示するには、gcloud monitoring snoozes list コマンドを実行します。

gcloud monitoring snoozes list OPTIONAL_FLAGS --project=PROJECT_ID

前述のコマンドを実行する前に、次のように置き換えます。

  • PROJECT_ID: プロジェクトの ID。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。
  • OPTIONAL_FLAGS: オプション フラグの詳細については、gcloud monitoring snoozes list リファレンス ページをご覧ください。

このコマンドのレスポンスは、プロジェクト内のスヌーズの名前のリストで、YAML 形式で返されます。たとえば、ID が my-project のGoogle Cloud プロジェクトに対するこのコマンドのレスポンスは、単一のエントリです。

criteria:
  policies:
  - projects/my-project/alertPolicies/12345
  - projects/my-project/alertPolicies/23451
displayName: Maintenance Week
interval:
  endTime: '2023-03-08T04:59:59Z'
  startTime: '2023-03-01T08:00:00Z'
name: projects/my-project/snoozes/778899

特定のスヌーズの詳細を一覧表示するには、gcloud monitoring snoozes describe コマンドを実行します。

gcloud monitoring snoozes describe NAME --project=PROJECT_ID

たとえば、名前が projects/my-project/snoozes/778899 のスヌーズの詳細を表示するには、次のコマンドを実行します。

gcloud monitoring snoozes describe projects/my-project/snoozes/778899 --project=PROJECT_ID

describe コマンドに無効な NAME を指定すると、レスポンスには 500 のエラーコードと次のメッセージが含まれます。

Internal error encountered. Please retry after a few seconds. If internal errors persist, contact support at https://cloud.google.com/support/docs.

スヌーズを編集する

予定されているスヌーズの名前と期間は編集できます。また、アクティブなスヌーズの名前と終了時間も編集できます。たとえば、メンテナンスの時間枠が再スケジュールされた場合は、スヌーズを編集する必要があります。

過去のスヌーズやスヌーズの条件は編集できません。ただし、過去のスヌーズを将来の期間に対してスケジュールするには、該当するスヌーズをコピーして、[作成] を選択する前にそのコピーに変更を適用します。

コンソール

スヌーズを編集するには、次の操作を行います。

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

    [アラート] に移動

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

  2. Google Cloud コンソールのツールバーで、 Google Cloud プロジェクトを選択します。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。
  3. [スヌーズ] ペインで [See all snoozes] をクリックします。
  4. スヌーズのリストで、編集するスヌーズを探し、[ その他のオプション] メニューで [スヌーズを編集] を選択します。
  5. 変更が完了したら、[保存] をクリックします。

Cloud Monitoring API

既存のスヌーズを変更するには、Snooze エンドポイントに PATCH リクエストを発行して snoozes.patch メソッドを呼び出します。変更後の snooze オブジェクトを使用して、変更されたフィールドを識別するクエリ パラメータを含める必要があります。curl を使用する場合は、クエリ パラメータを URL エンコードする必要があります。

今後のスヌーズでは、名前と期間を変更できます。アクティブなスヌーズでは、名前と終了時間を変更できます。過去のスヌーズは変更できません。

スヌーズの displayName を更新するには、スヌーズ オブジェクトを記述し、表示名を更新する JSON ファイル my-updated-snooze.json を作成します。次のコマンドを実行します。

curl -d @my-updated-snooze.json -H "Authorization: Bearer $ACCESS_TOKEN" \
-H 'Content-Type: application/json' \
-X PATCH https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/snoozes/${SNOOZE_ID}?updateMask=displayName

上の式で:

  • PROJECT_ID は、プロジェクトの ID を格納する環境変数です。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。

  • SNOOZE_ID は、スヌーズ ID を格納する環境変数です。

このメソッドは、ファイル my-updated-snooze.json の内容と同じ snooze オブジェクトを返します。

{
  "name": "projects/my-project/snoozes/778899",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/12345"
    ]
  },
  "interval": {
    "startTime": "2025-03-01T03:00:00.0-0500",
    "endTime": "2025-03-07T23:59:59.5-0500"
  },
  "displayName": "Snooze2"
}

gcloud CLI

スヌーズを編集するには、gcloud monitoring snoozes update コマンドを実行します。表示名、開始時間、終了時間を更新できます。

gcloud monitoring snoozes update NAME OPTIONAL_FLAGS --project=PROJECT_ID

前述のコマンドを実行する前に、次のように置き換えます。

  • NAME: スヌーズの名前。
  • PROJECT_ID: プロジェクトの ID。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。
  • OPTIONAL_FLAGS: オプション フラグの詳細については、gcloud monitoring snoozes update リファレンス ページをご覧ください。

たとえば、名前が projects/my-project/snoozes/778899 のスヌーズの表示名を変更するには、次のコマンドを実行します。

gcloud monitoring snoozes update projects/my-project/snoozes/778899 --display-name="Maintenance Week" --project=PROJECT_ID

スヌーズを終了またはキャンセルする

アクティブなスヌーズに指定した条件と一致するリソースに関する通知を受信するには、スヌーズを終了させます。たとえば、計画されたメンテナンスが予想よりも早く完了したときに、スヌーズを終了できます。

予定されたスヌーズが不要になった場合は、そのスヌーズをキャンセルします。キャンセル操作では、期間が 0 に設定され、その結果、スヌーズが過去の状態に移行します。

コンソール

アクティブなスヌーズを終了するか、予定されているスヌーズをキャンセルするには、次の操作を行います。

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

    [アラート] に移動

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

  2. Google Cloud コンソールのツールバーで、 Google Cloud プロジェクトを選択します。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。
  3. [スヌーズ] ペインで [See all snoozes] をクリックします。
  4. スヌーズのリストで、終了またはキャンセルするスヌーズを見つけて、次のいずれかを行います。

    • アクティブなスヌーズを終了するには、[ その他のオプション] メニューで [今すぐ終了] を選択します。
    • 予定されているスヌーズをキャンセルするには、[ その他のオプション] メニューで [スヌーズをキャンセル] を選択します。

Cloud Monitoring API

アクティブなスヌーズを終了するには、スヌーズを編集して、終了時刻を現在の時刻に設定します。詳細については、スヌーズを編集するをご覧ください。

予定されているスヌーズをキャンセルするには、スヌーズを編集して、スヌーズの開始時刻に終了時刻を設定します。開始時刻には将来の日付を指定してください。詳細については、スヌーズを編集するをご覧ください。

gcloud CLI

アクティブなスヌーズを終了するか、予定されているスヌーズをキャンセルするには、gcloud monitoring snoozes cancel コマンドを実行します。

gcloud monitoring snoozes cancel NAME --project=PROJECT_ID

前述のコマンドを実行する前に、次のように置き換えます。

  • NAME: スヌーズの名前。
  • PROJECT_ID: プロジェクトの ID。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。

たとえば、projects/my-project/snoozes/778899 という名前のスヌーズをキャンセルするには、次のコマンドを実行します。

gcloud monitoring snoozes cancel projects/my-project/snoozes/778899 --project=PROJECT_ID

スヌーズをコピーする

既存のスヌーズを別のスヌーズのテンプレートとして使用する場合は、コピーを作成します。スヌーズをコピーすると、スヌーズ エディタが開き、元のスヌーズに設定された開始時間を除くすべてのフィールドが表示されます。[作成] をクリックする前に、すべてのフィールドを変更できます。

コンソールを使用してスヌーズをコピーする手順は次のとおりです。

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

    [アラート] に移動

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

  2. Google Cloud コンソールのツールバーで、 Google Cloud プロジェクトを選択します。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。
  3. [スヌーズ] ペインで [See all snoozes] をクリックします。
  4. スヌーズのリストで、編集するスヌーズを探し、[ その他のオプション] メニューで [スヌーズをコピー] を選択します。
  5. 変更をコピーに適用し、[作成] をクリックします。

次のステップ