在 google 云中 24 小时后未收到消息时在 stackdriver 中发出警报

alert in stackdriver for not receiving msg after 24 hours in google cloud

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

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

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

有几种方法可以实现这一点。

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

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

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

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

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

一旦您决定了指标,您只需要在 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