我正在使用Grafana和Prometheus来显示来自Kubernetes Cluster的Pod数据。在这里,我按名称显示每个Pod的内存使用情况:
sum (container_memory_working_set_bytes{namespace="namespace1", image!="",name=~"^k8s_.*",kubernetes_io_hostname=~"^$Node$"}) by (pod_name)
它为每个吊舱提供正确的结果。例如:
namespace1-eventstore-1
namespace1-eventstore-0
avsandbox-X-64ff4d-rl9z6
avsandbox-X-64ff4d-ldfnx
avsandbox-Y-7d9df9ddff-asdf
avsandbox-Y-7d9df9ddff-dfas
avsandbox-Z-5957dbaf58dt-gds24
avsandbox-Z-5957dbaf58dt-g4gd7
现在我想用它们各自的名称对它们求和,以得到以下结果或我能得到的最接近的结果
namespace1-eventstore
avsandbox-X
avsandbox-Y
avsandbox-Z
因此,总而言之,我想对第二个-
之前具有相同名称的所有内容求和。我该如何实现?
编辑。:这是我正在寻找的其他示例(希望能提供实用的示例和一般想法很有帮助)
sum (container_memory_working_set_bytes{namespace="namespace1", image!="",name=~"^k8s_.*",kubernetes_io_hostname=~"^$Node$"}) by (pod_name="([a-zA-Z0-9]+-[a-zA-Z0-9])-.*")
但是由于语法的原因,这是不可能的。