创建和管理延后

本文档将介绍如何创建和管理您的 延后。延后会导致 Cloud Monitoring 创建突发事件并发出通知 特定时间段内的数据每个延后都会指定其适用的资源。

有关概念性概览,请参阅 延后通知和突发事件

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

准备工作

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

    • 如需获取使用 Google Cloud 控制台查看和修改暂停所需的权限, 请让管理员向您授予 项目的 Monitoring Editor (roles/monitoring.editor) IAM 角色。 如需详细了解如何授予角色,请参阅管理访问权限

      您也可以通过自定义角色或其他预定义角色来获取所需的权限。

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

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

    1. 创建一个环境变量 PROJECT_ID 来存储您的 Google Cloud 项目:

      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. 如需根据未结突发事件创建延后,请执行以下操作: <ph type="x-smartling-placeholder">
      </ph>
    1. 在“提醒”页面的突发事件窗格中,找到您的突发事件 然后点击其突发事件摘要
    2. 突发事件详情页面上,点击延后,然后选择 延后持续时间。您无法配置任何其他字段。
  3. 否则,请执行以下操作:

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

      您最多可以向一个 暂停。

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

    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 对象。"name" 字段 其中包含由 Monitoring 生成的延后 ID, 是返回的对象与 my-snooze.json 的内容:

{
  "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".

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

例如,以下命令可以创建一个显示名称为 “维护周”。延后会应用于两项提醒政策, 从 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

如需修改现有延后,请调用 snoozes.patch 方法是向 Snooze 端点发出 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. 将修改应用到副本,然后点击创建

后续步骤