网络钩子:将 CostGuard 警报发送到您自己的工具

更新于

如何注册目标、保存其签名密钥、检查每次投递并关闭目标,以及 CostGuard 会发送哪些事件。

此页面的用途

网络钩子会将工作区的警报发送到您运行的系统,例如聊天机器人、事件工具或您自己的服务。此页面说明哪些目标接收哪些事件,以及最近的投递是否送达。

CostGuard 会对每次投递签名,并按固定计划对失败的投递重试,最多五次。系统只发送下方列出的事件,其他内容一概不会外发。

“网络钩子”页面的顶部:标题、投递说明,以及注册目标的面板,其中包含名称、HTTPS 地址和要发送的事件。 “网络钩子”页面的顶部:标题、投递说明,以及注册目标的面板,其中包含名称、HTTPS 地址和要发送的事件。
只能选择 CostGuard 会产生的事件。

开始之前

您需要:

  • Pro 或 Enterprise 套餐;其他套餐会看到带标签的示例。
  • 一个位于公共主机上的 HTTPS 地址,它接受 POST 请求,并在信任请求之前检查签名。

阅读入门指南

注册目标

在“注册目标”中填写:

  • “名称”:一个您在列表中能认出的简短名称。
  • “目标网址”:必须是位于公共主机上的 HTTPS 地址。CostGuard 不会检查该地址是否可达,也不会检查它是否属于您。
  • “要发送的事件”:检测到预算风险、检测到预测风险和成本同步失败,这是 CostGuard 目前产生的三个事件。

在“当前不会产生”下,页面列出了其他无法选择的事件类别:CostGuard 列出了这些事件类别,但目前不会触发其中任何一个,因此无法选择。系统永远不会为它们发送任何内容。

“注册目标”会立即开启该目标。一个工作区最多可注册十个目标;面板会统计已使用的数量。

“注册目标”面板:名称和目标 URL 字段、三个可选事件,以及不会产生的类别。 “注册目标”面板:名称和目标 URL 字段、三个可选事件,以及不会产生的类别。
CostGuard 不产生的类别会被列出,而不是隐藏。

签名密钥

注册目标后,页面会显示一次其“签名密钥”。请立即复制。它只显示一次,无法再次显示;若遗失,请签发新密钥,旧密钥将随之失效。

每次投递都带有 X-CostGuard-Signature 标头(使用目标的签名密钥生成的 HMAC-SHA256 签名)和 X-CostGuard-Timestamp 标头。您的接收端在信任请求之前会先校验签名。

“签发新密钥”会先请求确认:当前密钥会立即失效,在您的接收端拿到新密钥之前,它会拒绝投递。

已注册的目标

“已注册的目标”列出每个目标及其接收的事件、“状态”、“最近一次投递”和“注册时间(UTC)”。其操作:

  • “关闭”和“开启”:目标关闭期间不会为它创建新的投递;已在等待的投递会在它重新开启后发送。
  • “签发新密钥”:请参阅上文的签名密钥。
  • “移除”:它将连同其签名密钥一起被移除,此后不再向它发送任何内容。

关闭、签发新密钥和删除都会先请求确认;开启则立即生效。

示例工作区的“已注册的目标”面板:一个已关闭的目标、其事件、最近一次投递以及以 UTC 表示的注册日期。 示例工作区的“已注册的目标”面板:一个已关闭的目标、其事件、最近一次投递以及以 UTC 表示的注册日期。
每个目标都显示其名称和地址;其密钥在签发后永远不会再显示。

最近的投递

此工作区最新的投递,最多一百条,最新的在前。时间均为 UTC。每次投递都有一个状态:

  • “已投递”:您的端点已接受。
  • “等待中”:将被尝试,或按固定计划重试。
  • “被拒绝”:您的端点拒绝了它,或该地址不可调用;不会再重试。
  • “已放弃”:已尝试五次,但您的端点未能及时接受。

“尝试次数”统计尝试次数,“详情”用简单的语言说明发生了什么,例如“您的接收端未在时限内响应”或“您的接收端拒绝了该请求”。投递到之后被删除的目标时会显示“已移除的目标”。

示例工作区的“最近的投递”面板:三次投递及其事件、状态、尝试次数和详情,其中包括一次在五次尝试后放弃的投递。 示例工作区的“最近的投递”面板:三次投递及其事件、状态、尝试次数和详情,其中包括一次在五次尝试后放弃的投递。
详情说明您的端点做了什么,从不显示原始响应。

网络钩子的工作原理

您的端点未能及时接受的投递会在一分钟、五分钟、十五分钟和六十分钟后重试,共五次尝试;第五次之后显示为“已放弃”。被您的端点拒绝的投递,或 CostGuard 不允许调用的地址,不会重试。

这些事件携带的是工作区在“告警规则”中触发的相同警报;只有在触发此类警报时才会发送事件。

网络钩子与电子邮件和应用内警报相互独立:后两者由“通知设置”决定,并在“警报投递历史”中列出。

您可能看到的非数字内容

页面读取时,灰色条会占据面板的位置。之后,页面可能改为显示以下状态之一:

  • “无法读取已注册的目标”:这并不表示本工作区没有注册任何目标。请重试。
  • 本工作区尚未注册任何目标。
  • “无法读取最近的投递”:这并不表示没有投递过任何内容。请重新加载页面再试。
  • CostGuard 无法确认此更改是否已保存。下方列表显示工作区的当前状态。

当您的方案不包含网络钩子时

在 Free、Starter 和 Growth 中,页面会在“示例数据”标签下显示固定示例,并附上这句话:“您当前的方案不包含此功能。此处显示的数字仅为示例,并非您的数据。”

示例显示的是虚构的目标和投递,没有按钮、没有密钥,也没有您的任何地址。

“网络钩子”页面的带标签示例:“示例数据”标签下的虚构目标和投递、方案说明以及“比较方案”链接。 “网络钩子”页面的带标签示例:“示例数据”标签下的虚构目标和投递、方案说明以及“比较方案”链接。
示例已明确标注,不包含您工作区的任何内容。

“比较方案”会在新标签页中打开价格页面。您的方案包含哪些功能由 CostGuard 在服务器上决定;示例只是页面呈现这一点的方式。

各方案包含的内容

表格显示包含页面各部分的最低方案。所有更高的方案也都包含该部分。

各套餐包含的内容
功能FreeStarterGrowthProEnterprise
带标签的页面示例 包含 包含 包含 包含 包含
注册目标并发送事件 不包含 不包含 不包含 包含 包含

套餐与价格

Pro 和 Enterprise 包含网络钩子;Free、Starter 和 Growth 显示带标签的示例。方案在服务器上检查,页面从不显示价格。

故障排除

我的接收端拒绝了签名

接收端保存的密钥已过期或输入有误。请签发新密钥,立即将其保存到接收端,并确认签名是基于收到的原始请求计算的。

投递显示“已放弃”

您的端点在五次尝试中都未能及时接受:无法访问、响应过慢或返回了错误。请修复端点;端点恢复响应后,新事件将会投递。

页面拒绝了我的地址

CostGuard 无法使用该地址。它必须是 HTTPS、位于公共主机且使用标准端口。包含用户名或密码的地址也会被拒绝。

我无法再注册目标

工作区已注册十个目标,即允许的最大数量。请先删除一个不再使用的目标。