创建和管理暂停

本文档介绍了如何创建和管理闹钟提醒。延后会导致 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

如需创建延后,请调用 snoozes.create 方法是向 Snooze 端点发出 POST 请求。 您必须提供 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 表示法。您可以下载 使用 政策详情页面。

创建周期性延后

如需创建按重复间隔发生的暂停时间,您可以编写一个脚本,用于为提醒政策创建暂停时间。然后使用如下作业调度器: 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. 将修改内容应用于副本,然后点击创建

后续步骤