按正则表达式指定的名称对查询结果求和

时间:2019-09-09 09:17:19

标签: grafana prometheus

我正在使用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])-.*")

但是由于语法的原因,这是不可能的。

0 个答案:

没有答案