省略系列结果 PromQL 中的标签

Edw*_*ard 18 prometheus promql prometheus-operator kube-state-metrics

假设我编写一个像这样的基本 PromQL 查询

询问: kube_deployment_spec_replicas{}

结果:

kube_deployment_spec_replicas{deployment="mydeployment",endpoint="myendpoint",instance="myinstance",job="myjob",namespace="default",pod="mypod",service="myservice"}
Run Code Online (Sandbox Code Playgroud)

有没有一种干净的方法可以从结果时间序列中省略instance和?pod

期望:

kube_deployment_spec_replicas{deployment="mydeployment",endpoint="myendpoint",job="myjob",namespace="default",service="myservice"}
Run Code Online (Sandbox Code Playgroud)

val*_*ala 23

尝试使用 Sergio 已经建议的类似以下内容:

sum(kube_deployment_spec_replicas) without (instance, pod)
Run Code Online (Sandbox Code Playgroud)

此查询将从结果中删除instance和标签。请注意,如果存在具有相同标签集的多个时间序列,pod则查询将无法按预期工作。在这种情况下,查询将对这些时间序列进行求和。kube_deployment_spec_replicas(instance, pod)

ps MetricsQL - 来自类似 Prometheus 的监控系统的类似 PromQL 的查询语言 - VictoriaMetrics - 提供了更明显的解决方案来删除具有以下label_del功能的标签:

label_del(kube_deployment_spec_replicas, "instance", "pod")
Run Code Online (Sandbox Code Playgroud)

披露:我是 VictoriaMetrics 的作者。


Ser*_*ago 2

您需要使用 Prometheus 查询运算符。您可以根据您的用例使用 avg 或 sum。

您可以在这里查看更多信息:这里