kubernetes - Grafana 警报以特定间隔摆动
问题描述
我为我的 prometheus 数据创建了一个警报,该警报每 30 秒摆动一次,这是我设置检查的指定间隔。我正在尝试检查所需的 pod 数量是否在整个 15 分钟内不等于我的 k8s 集群中可用的 pod 数量。警报似乎表明我指定的指标是上次警报时的值,但如果我单击“测试警报”,返回的 json 指定现在不应该有警报。我不确定为什么会这样,任何见解都将不胜感激。以下是相关信息:
警报查询:(sum(kube_deployment_spec_replicas{namespace="default"}) without (deployment, instance, pod)) - (sum(kube_deployment_status_replicas_available{namespace="default"}) without (deployment, instance, pod))
条件:WHEN min() OF query(G,15m,now) IS ABOVE 0.5
如果没有数据或所有值都为空,则将状态设置为 Ok
如果执行错误或超时设置状态保持最后状态
编辑:当我直接对 prometheus 运行查询时,我得到以下响应:
curl -k -s 'https://prometheus-k8s/api/v1/query?query=(sum(kube_deployment_spec_replicas%7Bnamespace%3D%22default%22%7D)%20without%20(deployment%2C%20instance%2C%20pod))%20-%20(sum(kube_deployment_status_replicas_available%7Bnamespace%3D%22default%22%7D)%20without%20(deployment%2C%20instance%2C%20pod))'
{"status":"success","data":{"resultType":"vector","result":[{"metric":{"endpoint":"https-main","job":"kube-state-metrics","namespace":"default","service":"kube-state-metrics"},"value":[1529946877.247,"0"]}]}}%
解决方案
推荐阅读
- docker - Docker 撰写健康检查选项
- python-3.x - 我们如何在 kv 文件中使用循环创建多行?(Python3,基维)
- sql-server - 根据列值抛出用户定义的错误消息
- javascript - 如何将对象推入阵列 Firebase
- security - oAuth 安全评估 - Google 指定的第三方评估员
- json - 如何在 kibana 中使用 bar vizualitation 将秒转换为小时?
- java - 无法以一种小方法在 Java 中参数化 MySQL 语句
- android - android 应用程序错误... java.lang.IllegalStateException: 没有活动
- shell - 如何为 sed 创建一个简单的正则表达式?
- sql - Select from_Json DF 转换结果 null