我目前有以下 Promql 查询,它允许我查询每个 K8S pod 使用的内存:
sum(container_memory_working_set_bytes{image!="",name=~"^k8s_.*"}) by (pod_name)
Pod 的名称后跟由 K8S 定义的哈希:
weave-net-kxpxc
weave-net-jjkki
weave-net-asdkk
Run Code Online (Sandbox Code Playgroud)
哪些都属于同一个应用程序: weave-net
我想要的是聚合属于同一个应用程序的所有 pod 的内存。
因此,查询会将所有weave-netPod的内存相加,并将结果放在名为weave. 比如结果是:
{pod_name="weave-net"} 10
Run Code Online (Sandbox Code Playgroud)
代替
{pod_name="weave-net-kxpxc"} 5
{pod_name="weave-net-jjkki"} 3
{pod_name="weave-net-asdkk"} 2
Run Code Online (Sandbox Code Playgroud)
甚至有可能这样做,如果是,如何?
Ivá*_*gre 12
您可以使用label_replace
sum(label_replace(container_memory_working_set_bytes{image!="",name=~"^k8s_.*"}, "pod_set", "$1", "pod_name", "(.*)-.{5}")) by (pod_set)
Run Code Online (Sandbox Code Playgroud)
您将包含一个新标签 ( pod_set),该标签与第一组 ($1) 匹配,从而匹配pod_name标签上的正则表达式。然后你总结新标签pod_set。
[编辑]
| 归档时间: |
|
| 查看次数: |
5551 次 |
| 最近记录: |