GCP 正常运行时间指标发出不可靠的警报

GCP Uptime Metric is giving unreliable alerts

尝试通过创建警报策略在 GCE VM 处于关闭状态时获得警报。

指标:compute.googleapis.com/instance/uptime

资源:虚拟机实例

并进行了配置,以便在这种情况不存在 3 分钟时触发警报。

为了模拟上述行为,我已停止 VM 但它未触发警报,同时数据在警报策略图表中不可见

已附加触发器配置

您描述的行为异常。

我重现了您的案例,并使用具有相同设置的相同指标 compute.googleapis.com/instance/uptime 创建了准确的警报策略。我已将所有警报转发到我的电子邮箱。

不幸的是,我无法重现此行为。在尝试了各种设置(聚合、缺席时间)后,我收到了提醒电子邮件。

尝试重新设置警报策略。如果您的目标只是监视 VM 的状态(有响应或无响应),那么您可以使用任何其他指标,例如 cpu usage,当 VM 关闭(或无响应)时,该指标将不存在。

最后,您可以在您的 VM 上尝试 installing monitoring agent,这将为您提供更多可用指标,从而提供有关计算机的更多信息。

查看 how to manage alerting policies documentation which may be usefull to you. Additionally this documentation describes alerting policies types 以及如何为您的用例选择合适的。

最终尝试创建另一个 VM 并为其设置警报策略。如果这不起作用,您最好的办法是转到 Google IssueTracker 并提交新的错误报告,它将由产品团队处理 - 但是这可能需要一些(或很多)时间,具体取决于问题.

None 的指标在 VM 处于停止状态时提供可靠的警报,即 compute.googleapis。com/instance/uptime 或监控代理的正常运行时间或 cpu利用率指标,直到您使用 MQL 创建警报策略 - 监控查询语言。

“与 TERMINATED 或 DELETED 关联的指标 Google 云资源不考虑指标缺失策略。这意味着您不能使用指标缺失策略来测试 TERMINATED 或 DELETED Google云虚拟机。” https://cloud.google.com/monitoring/alerts/types-of-conditions#metric-absence

因此,根据上述声明,我们不能对停止的 vm 使用 metic 缺席策略 - 因为它在停止后进入终止状态 sometime.The 原因是,它仅在实例停止时间变为 运行再说一遍。

但是当您使用具有相同指标集的 MQL 配置相同条件时,指标缺失策略可以正常工作。

样本:

不要通过选择资源和指标来配置条件,而是转到查询编辑器并键入以下查询,以便在开发环境 VM 未处于 运行 状态 3 分钟时获取警报。

fetch gce_instance
| metric 'compute.googleapis.com/instance/uptime'
| filter (metadata.user_labels.env == 'dev')
| group_by 1m, [value_uptime_aggregate: aggregate(value.uptime)]
| every 1m
| absent_for 180s

不确定这是否是错误,但这是我们以传统方式配置警报条件时的局限性,我们可以利用 MQL 解决此问题。