我想使用stackdriver每天两次监视kubernetes中的pod是否作为cronjob正确运行。
为此,我想在容器中发送开始消息和结束消息日志,并希望在堆栈驱动程序中创建一个警报指标,如果24小时后仍未收到这些消息,则发送电子邮件。
是否可以在堆栈驱动程序中执行此警报?
答案 0 :(得分:2)
有几种方法可以做到这一点。
为了生成事件,我认为最简单的方法是检查基于CRON本身的基于日志的指标。如果您正在运行kind:CronJob
,则可以使用Metrics Explorer查找资源type:GKE Container
Metric: Log entries
,然后按container_name
进行过滤(将成为您的CronJob {{1 }})
您还可以根据类似的内容创建基于日志的指标
spec.containers.name
...并且可能在logName="projects/[PROJECT-ID]/logs/[CONTAINER-NAME]"
部分中添加一个字符串以使过滤更加容易。
您还可以发布到发布/订阅主题,并在发布消息操作时发出警报。
确定指标后,只需警告spec.containers.args
[1]是否持续13个小时。添加一个通知频道Any time series is absent
[2],只要cron每天至少运行一次,您就会收到警报。
[1] https://cloud.google.com/monitoring/alerts/concepts-indepth#condition-types
[2] https://cloud.google.com/monitoring/support/notification-options#email