文档模板中的变量

本页介绍与提醒政策关联的文档模板中可使用的变量和特定于渠道的控制选项。

使用变量

除了 Markdown 之外,您还可以使用 ${varname} 形式的变量来调整文档内容。当文档以通知的形式发送时,字符串 ${varname} 将被替换为值 varname。以下屏幕截图显示了电子邮件通知中包含的文档,该文档是根据创建提醒政策:文档中描述的文档模板创建的:

电子邮件中包含文档。

文档字段中可使用以下变量:

变量
condition.name 条件的 REST 资源名称,例如 projects/foo/alertPolicies/1234/conditions/5678
condition.display_name 条件的显示名称,例如 CPU usage increasing rapidly
metric.type 指标类型,如 compute.googleapis.com/instance/cpu/utilization
metric.display_name 指标类型的显示名称,例如 CPU utilization
metric.label.[KEY] 指标标签 [KEY]1 的值
policy.user_label.[KEY] 用户标签 [KEY]1,2 的值
policy.name 政策的 REST 资源名称,例如 projects/foo/alertPolicies/1234
policy.display_name 政策的显示名称,例如 High CPU rate of change
project 工作区的项目 ID,例如 a-gcp-project
resource.project 提醒政策的受监控资源的项目 ID
resource.type 受监控资源的类型,例如 api
resource.label.[KEY] 资源标签 [KEY]1,3 的值

1 例如,${resource.label.zone} 被替换为 zone 标签的值。这些变量的值会进行分组;请参阅以下备注了解详情。
2 只能通过 Monitoring API 来设置政策中的用户标签。
3 要检索提醒策略中的受监控资源上的 project_id 标签值,请使用 ${resource.project}

注意:

  • 只有上表中的变量受支持。您无法将它们组合成更复杂的表达式,如 ${varname1 + varname2}
  • 某些变量的值(例如 resource.projectmetric.label.[KEY]resource.label.[KEY]metadata.user_label.[KEY])是根据时间序列得出的。如果时间序列查询未返回任何值,则这些值可以为 null。可能会导致变量具有 null 值的一个原因是,您的提醒政策使用跨序列聚合(例如,计算与过滤条件匹配的每个时间序列的总和)。使用跨序列聚合时,没有用于分组的变量将被舍弃,并且如果在变量替换中引用,将具有 null 值。
  • 要将文字字符串 ${ 包含在您的文档中,请再使用一个 $ 符号对 $ 符号进行转义,即 $${ 将在您的文档中呈现为 ${
  • 只有在通过通知渠道发送的通知中,这些变量才会被它们的值替换。在 Google Cloud Console 中显示文档时,您看到的是变量,而不是值。控制台中的示例包括创建提醒政策时的突发事件说明和文档预览。

使用渠道控制功能

文档字段中的文本还可以包含通知渠道本身用来控制格式和通知的特殊字符。

例如,Slack 使用 @ 表示提及。您可以使用此字符将通知链接到特定用户。假设您在文档字段中包含了这样一个字符串:

<@backendoncall> policy ${policy.display_name} triggered an incident
    

作为通知的一部分,当相关 Slack 渠道收到文档字段时,该行会向 backendoncall 用户触发一条附加消息,例如 policy High CPU rate of change triggered an incident

这些附加选项是特定于渠道的。如需详细了解可用选项,请参考渠道供应商提供的文档。