创建和管理延迟提醒

本文档介绍了如何创建和管理闹钟提醒。延后会阻止 Cloud Monitoring 在特定时间段内创建突发事件并发出通知。每个延迟时间都指定了其适用的资源。

如需查看概念性概览,请参阅推迟通知和突发事件

如需创建和管理暂停时间,您可以使用 Google Cloud 控制台或 Cloud Monitoring API。

准备工作

  1. 确保您拥有所需的权限:

    如需详细了解 Cloud Monitoring 角色,请参阅使用 Identity and Access Management 控制访问权限

  2. 如果您想使用本文档中的 Cloud Monitoring API 示例,请执行以下操作:

    1. 创建一个环境变量 PROJECT_ID 来存储 Google Cloud 项目的 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 创建延迟通知。

控制台

  1. 在 Google Cloud 控制台中,转到 提醒页面:

    进入提醒

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 如需根据未解决的突发事件创建提醒,请执行以下操作:
    1. 在“提醒”页面的突发事件窗格中,找到您的突发事件,然后点击其突发事件摘要
    2. 突发事件详情页面上,点击暂停,然后选择暂停时长。您无法配置任何其他字段。
  3. 否则,请执行以下操作:

    1. 提醒页面上,点击创建延迟
    2. 为该延迟输入一个描述性名称。此名称会显示在提醒页面上。
    3. 选择开始时间。您可以输入具体时间,也可以在创建闹钟时立即开始闹钟。
    4. 输入时长。此字段的值决定了闹钟的闹钟暂停时长。
    5. 填写延后条件部分。您可以使用提醒政策菜单选择要应用此功能的提醒政策。

      您最多可以向一个延迟提醒添加 16 项提醒政策。

      填写延后条件部分后,创建延后窗格会列出符合条件的过往突发事件。

    6. 点击创建

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

该方法会返回一个 snooze 对象。返回的对象与 my-snooze.json 内容之间的唯一区别在于 "name" 字段,其中包含由“监控”功能生成的暂停 ID:

{
  "name": "projects/my-project/snoozes/2986666341878464512",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/787884840895011889"
    ]
  },
  "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

在上一个命令中,end-time 必须比 start-time 晚至少一分钟。您必须遵循 ISO 8601 格式设置规则;不过,您可以指定绝对时间或相对时间。以下示例指定了绝对时间。如需从当前时间开始推迟 30 分钟,请使用 --start-time="+PTM30M"

如果您指定多个项目,请使用英文逗号分隔项目。

例如,以下命令会创建一个显示名称为“Maintenance Week”(维护周)的延迟提醒。暂停时间段涵盖 3 月 1 日至 3 月 7 日,并适用于两个提醒政策:

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

上例会在 my-project 中创建以下闹钟:

{
 "name": "projects/my-project/snoozes/98765",
 "displayName": "Maintenance Week",
 "interval": {
   "startTime": "2023-03-01T08:00:00Z",
   "endTime": "2023-03-08T04:59:59Z"
 },
 "criteria": {
   "policies": [
     "projects/my-project/alertPolicies/12345",
     "projects/my-project/alertPolicies/23451",
   ]
 }
}

如果成功,对此命令的响应类似于以下内容:

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

Google Cloud 控制台中未显示提醒政策的名称。如需确定提醒政策的名称,请执行以下操作之一:

  • 运行 gcloud alpha monitoring policies list 命令。此命令的响应数据包含提醒政策的名称。
  • 查看提醒政策的 JSON 表示法。您可以使用政策详情页面上的选项将 JSON 表示形式下载到本地系统。

创建周期性延后

如需创建按重复间隔发生的暂停时间,您可以编写一个脚本,用于为提醒政策创建暂停时间。然后,使用作业调度程序(例如 cronCloud Scheduler)按所需时间表运行脚本。

列出延后时间

创建延迟后,系统会将其添加到项目的延迟历史记录中。此记录会显示已过期、有效和即将到期的延迟提醒。您无法从此记录中移除条目,也就是说,您无法删除已暂停的闹钟。不过,在此视图中,您可以显示有关延迟提醒的详细信息,还可以执行修改或复制延迟提醒等操作。

控制台

如需查看延迟提醒列表,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 提醒页面:

    进入提醒

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 点击延后窗格中的查看所有延后

    推迟页面会显示推迟列表和时间轴,其中以图形方式显示了过去、即将到来和正在进行的推迟。

    • 如需修改、复制、取消或结束延迟提醒,请使用相应延迟提醒的 更多选项菜单。闹钟的暂停状态决定了可用的选项。
    • 如需列出所有延后时间,请启用显示过去的延后时间。默认情况下,系统只会列出当前有效的和即将到期的延迟提醒。
    • 如需更改时间轴表的显示时间段,请使用时间范围菜单。默认情况下,此表格会显示下一小时的数据;不过,您可以修改此字段以指定过去或未来的时间范围。已过期的暂停时间会保留 13 个月。
    • 如需查看特定延迟提醒的详细信息,请点击查看详细信息
    • 如需查看有效的延迟提醒摘要,请将指针放在时间轴表格中有效行的阴影区域。提示会显示摘要信息。
    • 如需查看正在运行的延迟提醒的图形表示,请展开时间轴表的有效行。

Cloud Monitoring API

如需列出属于 Google Cloud 项目的所有延迟通知,请调用 snoozes.list 方法:

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

该方法会返回 snooze 对象的列表。例如,当项目有一次延迟时,对 snoozes.list 命令的响应如下所示:

{
  "snoozes": [
    {
      "name": "projects/my-project/snoozes/2986663705844383744",
      "criteria": {
        "policies": [
          "projects/my-project/alertPolicies/787884840895011889"
        ]
      },
      "interval": {
        "startTime": "2022-11-08T19:00:20Z",
        "endTime": "2022-11-08T19:05:20Z"
      },
      "displayName": "Snooze1"
    }
  ]
}

如需获取特定延迟通知的相关信息,请调用 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/2986663705844383744",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/787884840895011889"
    ]
  },
  "interval": {
    "startTime": "2022-11-08T19:00:20Z",
    "endTime": "2022-11-08T19:05:20Z"
  },
  "displayName": "Snooze1"
}

gcloud CLI

如需列出当前项目中的延迟通知,请运行 gcloud monitoring snoozes list 命令:

gcloud monitoring snoozes list 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/98765

如需列出特定延迟提醒的详细信息,请运行 gcloud monitoring snoozes describe 命令:

gcloud monitoring snoozes describe NAME

例如,如需显示名为 projects/my-project/snoozes/98765 的闹钟的详细信息,请运行以下命令:

gcloud monitoring snoozes describe projects/my-project/snoozes/98765

如果您向 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 控制台中,转到 提醒页面:

    进入提醒

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 点击延后窗格中的查看所有延后
  3. 在“推迟”列表中,找到要修改的推迟,然后在 更多选项菜单中选择修改推迟
  4. 完成更改后,点击保存

Cloud Monitoring API

如需修改现有暂停时间,请向 Snooze 端点发出 PATCH 请求,以调用 snoozes.patch 方法。您必须提供经过修改的 snooze 对象,并添加用于标识要修改的字段的查询参数。使用 curl 时,必须对查询参数进行网址编码。

对于即将推迟的提醒,您可以修改名称和时长。对于正在运行的延迟播放,您可以修改名称和结束时间。您无法修改过往的暂停时间。

如需更新推迟的 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

该方法会返回一个 snooze 对象,该对象与文件 my-updated-snooze.json 的内容相同:

{
  "name": "projects/my-project/snoozes/2986665388391530496",
  "criteria": {
    "policies": [
      "projects/my-project/alertPolicies/7164333552684403347"
    ]
  },
  "interval": {
    "startTime": "2022-11-08T22:26:05Z",
    "endTime": "2022-11-08T22:31:05Z"
  },
  "displayName": "Updated snooze name"
}

gcloud CLI

如需修改闹钟的暂停时间,请运行 gcloud monitoring snoozes update 命令。您可以更新显示名称、开始时间和结束时间:

gcloud monitoring snoozes update NAME OPTIONAL_FLAGS

如需查看 update 命令的选项列表,请参阅 gcloud monitoring snoozes update 参考文档页面。

例如,如需更改名为 projects/my-project/snoozes/98765 的闹钟的显示名称,请运行以下命令:

gcloud monitoring snoozes update projects/my-project/snoozes/98765  --display-name="March Maintenance"

结束或取消延后

如果您想收到与当前延迟通知中指定的条件匹配的资源的通知,请结束延迟通知。例如,当计划的维护工作比预期更快完成时,您可能需要结束延迟。

如果您不想再使用即将到期的延迟提醒,请取消延迟提醒。取消操作会将时长设置为零,并导致闹钟延迟转换为过去状态。

控制台

如需结束正在进行的暂停或取消即将暂停的提醒,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 提醒页面:

    进入提醒

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 点击延后窗格中的查看所有延后
  3. 在“延迟提醒”列表中,找到要结束或取消的延迟提醒,然后执行以下操作之一:

    • 如需结束正在进行的延迟提醒,请在 更多选项菜单中选择立即结束
    • 如需取消即将暂停的闹钟,请在 更多选项菜单中选择取消暂停

Cloud Monitoring API

如需结束正在使用的暂停模式,请修改暂停模式,并将结束时间设为当前时间。如需了解详情,请参阅修改暂停时间

如需取消即将到来的延后操作,请修改延后操作,并将结束时间设为延后操作的开始时间。开始时间必须是将来的时间。 如需了解详情,请参阅修改暂停时间

gcloud CLI

如需结束正在进行的暂停或取消即将到来的暂停,请运行 gcloud monitoring snoozes cancel 命令:

gcloud monitoring snoozes cancel NAME

例如,如需取消名为 projects/my-project/snoozes/98765 的延迟提醒,请运行以下命令:

gcloud monitoring snoozes cancel projects/my-project/snoozes/98765

复制延后时间

如需将现有延迟提醒作为另一个延迟提醒的模板,请复制该提醒。复制延迟提醒后,系统会打开延迟提醒编辑器,其中所有字段(除了开始时间)都会设为原始延迟提醒中的值。您可以在点击创建之前修改所有字段。

如需使用控制台复制延迟提醒,请执行以下操作:

  1. 在 Google Cloud 控制台中,转到 提醒页面:

    进入提醒

    如果您使用搜索栏查找此页面,请选择子标题为监控的结果。

  2. 点击延后窗格中的查看所有延后
  3. 在“延迟提醒”列表中,找到要修改的延迟提醒,然后在 更多选项菜单中选择复制延迟提醒
  4. 将修改应用于副本,然后点击创建

后续步骤