【发布时间】:2019-01-07 21:19:21
【问题描述】:
我目前有以下 Promql 查询,它允许我查询我的每个 K8S pod 使用的内存:
sum(container_memory_working_set_bytes{image!="",name=~"^k8s_.*"}) by (pod_name)
pod 的名字后跟一个 K8S 定义的 hash:
weave-net-kxpxc
weave-net-jjkki
weave-net-asdkk
都属于同一个应用:weave-net
我想要的是聚合属于同一应用程序的所有 pod 的内存。
因此,查询将汇总所有 weave-net pod 的内存,并将结果放入名为 weave 的应用程序中。比如结果会是:
{pod_name="weave-net"} 10
而不是
{pod_name="weave-net-kxpxc"} 5
{pod_name="weave-net-jjkki"} 3
{pod_name="weave-net-asdkk"} 2
是否有可能这样做,如果可以,怎么做?
【问题讨论】:
-
我有完全相同的问题,但没有找到解决方案,在这个阶段这样做(我想这是不可能的)。但是,可以添加一个额外的标签并使用 prometheus 的 relabel 配置中的正则表达式来获取要分组的标签。如果这对您来说是一个可能的解决方案,我可以发布一个答案如何做到这一点。
-
嗨@ThomasBöhm!很高兴看到您的解决方案。就个人而言,我只是去写一个 Python 脚本,根据 regex 过滤掉结果。
标签: prometheus promql