我为我的 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"]}]}}%