gpt4 book ai didi

kubernetes - 监控 GKE 上运行的 Cronjob

转载 作者:行者123 更新时间:2023-12-02 12:32:32 26 4
gpt4 key购买 nike

我正在尝试监视在 GKE 上运行的 CronJob,但我看不到检查 CronJob 是否实际运行的简单方法。如果 CronJob 没有运行超过 X 时间并且 Stackdriver 似乎不支持,我想触发警报。
目前,我尝试使用基于日志记录指标的警报,但这仅有助于我在应用程序崩溃或特定错误的情况下发出警报,而不是平台错误本身。
我调查了一个使用 Prometheus 警报的解决方案,它可以集成到 Stackdriver 中吗?
更新:
只是跟进,最终在 Stackdriver 上使用基于日志的警报开发了一个简单的解决方案。如果日志在 X 时间后没有出现,那么它将触发警报。它并不完美,但对于我的用例来说还可以。

最佳答案

看起来好像它是一个启动标准 Kubernetes 作业的 cronjob,您可以查询该作业,然后检查它的开始时间,并将其与当前时间进行比较。

注意:我不熟悉 stackdriver,所以这可能不是你想要的,但是......

例如。用 bash:

START_TIME=$(kubectl -n=your-namespace get job your-job-name -o json | jq '.status.startTime')
echo $START_TIME

您还可以像这样以 JSON blob 的形式获取作业的当前状态:
kubectl -n=your-namespace get job your-job-name -o json | jq '.status'
这将产生如下结果:
{
"completionTime": "2019-09-06T17:13:51Z",
"conditions": [
{
"lastProbeTime": "2019-09-06T17:13:51Z",
"lastTransitionTime": "2019-09-06T17:13:51Z",
"status": "True",
"type": "Complete"
}
],
"startTime": "2019-09-06T17:13:49Z",
"succeeded": 1
}

您可以在检查脚本中使用 jq 之类的工具来查看 成功类型 字段以查看作业是否成功。

因此,使用您的 START_TIME 值,您可以获得当前时间或作业完成时间( completionTime ),如果结果小于您的最小作业时间阈值,您可以触发警报 - 例如POST 到 slack webhook 以发送通知或您使用的任何其他警报系统。

关于kubernetes - 监控 GKE 上运行的 Cronjob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57959635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com