【发布时间】:2020-03-13 08:41:39
【问题描述】:
假设我写了一个这样的基本 PromQL 查询
查询:
kube_deployment_spec_replicas{}
结果:
kube_deployment_spec_replicas{deployment="mydeployment",endpoint="myendpoint",instance="myinstance",job="myjob",namespace="default",pod="mypod",service="myservice"}
有没有一种干净的方法可以从结果时间序列中省略 instance 和 pod?
期望:
kube_deployment_spec_replicas{deployment="mydeployment",endpoint="myendpoint",job="myjob",namespace="default",service="myservice"}
【问题讨论】:
-
为什么要这样做?您不能只删除标签,因为作为查询的结果,您需要具有唯一的时间序列,而简单地删除标签会违反该约束。
-
@Oliver 这些指标是通过 kube-state-metrics 作业收集的。当作业扩大和缩小时,这些指标的实例和 pod 标签会发生变化。这会导致 prometheus alertmanager 可能将 prometheus 警报的状态从触发更改为挂起。
-
所有指标都一样吗?那么为什么不按照 Sergio 的建议使用 max 或 avg 将时间序列减少到每个部署只有一个。
标签: prometheus promql prometheus-operator kube-state-metrics