首页 > 解决方案 > 堆栈驱动程序中的警报在 24 小时后在谷歌云中未收到消息

问题描述

我想监视 kubernetes 中的 pod 是否使用 stackdriver 每天两次作为 cronjob 正确运行。

为了做到这一点,我想在 pod 中发送开始消息和结束消息日志,并且我想在堆栈驱动程序中创建一个警报指标,如果 24 小时后没有收到这些消息,请发送电子邮件。

是否可以在堆栈驱动程序中执行此警报?

标签: stackdrivergoogle-cloud-stackdriver

解决方案


有几种方法可以做到这一点。

为了生成事件,我认为最简单的方法是检查基于 CRON 本身的基于日志的指标。如果您正在运行kind:CronJob,您可以使用 Metrics Explorer 查找 Resource type:GKE Container Metric: Log entries,然后按container_name(这将是您的 CronJob spec.containers.name)过滤

您还可以创建一个基于日志的指标,例如

logName="projects/[PROJECT-ID]/logs/[CONTAINER-NAME]"

...并且可能在该部分添加一个字符串以spec.containers.args使过滤更容易。

您还可以发布到发布/订阅主题并在发布消息操作时发出警报。

一旦你决定了这个指标,你只需要在Any time series is absent[1] 13 小时内发出警报。添加一个通知通道type=email[2],只要 cron 每天至少运行一次,您就会收到警报。

[1] https://cloud.google.com/monitoring/alerts/concepts-indepth#condition-types

[2] https://cloud.google.com/monitoring/support/notification-options#email


推荐阅读