Kubernetes 普罗米修斯中范围向量上的标签替换

Kubernetes 普罗米修斯中范围向量上的标签替换,kubernetes,prometheus,promql,Kubernetes,Prometheus,Promql,我想找到10分钟内以sendsms开始的所有POD的警报总数 我可以在瞬间向量上做这个。但当我想对超过10分钟的数据执行此操作时,它无法工作,因为label_replace仅对瞬时向量有效 用一个例子解释问题: ALERTS{alertname="CPUThrottlingHigh",pod="sendsms-dbed"} 10 ALERTS{alertname="CPUThrottlingHigh",pod="sendsms-ebed"} 20 ALERTS{alertname="CPUThr

我想找到10分钟内以sendsms开始的所有POD的警报总数

我可以在瞬间向量上做这个。但当我想对超过10分钟的数据执行此操作时,它无法工作,因为label_replace仅对瞬时向量有效

用一个例子解释问题:

ALERTS{alertname="CPUThrottlingHigh",pod="sendsms-dbed"} 10
ALERTS{alertname="CPUThrottlingHigh",pod="sendsms-ebed"} 20
ALERTS{alertname="CPUThrottlingHigh",pod="sendsms-fbed"} 30
使用labelreplace,我可以使用正则表达式添加一个新标签,然后对它进行分组并获得结果

label_replaceALERTS{alertname=CPUThrottlingHigh,podname,$1,pod,[a-z-a-z]+-*

如何在10分钟内对警报执行此操作并计算总数

我想在最后10分钟里得到这样的结果

ALERTS{alertname="CPUThrottlingHigh",podname="sendsms"} 60
ALERTS{alertname="CPUThrottlingHigh",podname="sendmail"} 210

目标:找到在过去1周内产生最多警报数量的POD。

我能够通过在完成总和后进行标签替换来解决此问题

质疑

结果


我能够解决这个问题,做了加法后再做标签替换

质疑

结果


为什么不直接使用正则表达式选择器呢?pod名称中有一个uuid。我想在同一个查询中获取所有pod的数据,而不仅仅是sendsms,也来自sendmail。看起来不可能仅使用正则表达式选择器就可以做到这一点。如果您认为有可能,您可以共享一个示例查询吗?pod=~“sendsms | sendmail-.*”我想获取我的目标是找到产生最大数量警报的吊舱。为什么不使用正则表达式选择器呢?吊舱名称中有一个uuid。我想在同一个查询中获取所有吊舱的数据,而不仅仅是sendmail中的sendsms。它不ook仅使用正则表达式选择器就可以做到这一点。如果您认为这是可能的,您可以共享一个示例查询吗?pod=~“sendsms | sendmail-.*”我想获取所有pod的数据,而不仅仅是sendsms。让我编辑这个问题。像这样的pod大约有1000个。不仅仅是这两个。我的目标是找到生成最大数量警报的pod。
ALERTS{alertname="CPUThrottlingHigh",pod="sendsms-dbed", podname="sendsms"} 10
ALERTS{alertname="CPUThrottlingHigh",pod="sendsms-dbed", podname="sendsms"} 10
ALERTS{alertname="CPUThrottlingHigh",podname="sendsms"} 60
ALERTS{alertname="CPUThrottlingHigh",podname="sendmail"} 210
sort_desc(sum by (pod_set) (label_replace(sort_desc(sum by (namespace, pod) (avg_over_time(ALERTS{alertname=~"(KubeDeploymentReplicasMismatch|KubePodNotReady|KubePodCrashLooping|KubeJobFailed)", alertstate="firing"}[1w]))), "pod_set", "$1", "pod", "([a-z-A-Z]+)-.*" )))
{pod_set="sendsms"} 62
{pod_set="emailspreprocessor"}  32
{pod_set="sendmail"}    21