基于标签的Prometheus过滤

时间:2020-02-05 01:00:29

标签: prometheus grafana

如何在Prometheus查询中添加标签过滤器?

kube_pod_info

kube_pod_info {created_by_kind =“ ReplicaSet”,created_by_name =“ alertmanager-6d9f74d4c5”,instance =“ kube-state-metrics:8080”,job =“ kube-state-metrics”,namespace =“ test”,pod =“ alertmanager-6d9f74d4c5-xlqrv“}

kube_pod_labels

kube_pod_labels {instance =“ kube-state-metrics:8080”,job =“ kube-state-metrics”,label_app =“ alertmanager”,label_pod_template_hash =“ 6d9f74d4c5”,namespace =“ test”,pod =“ alertmanager- 6d9f74d4c5-xlqrv”,label_source =“ k8s”}

在这里,我在prometheus中有kube_pod_info和kube_pod_labels的kube状态指标信息。

kube_pod_info{namespace="test"} --->通过名称空间测试过滤pod。

在这里,我也想包括基于标签的过滤器。我在kube_pod_labels中有一个名为“ label_source =“ k8s”的标签。如何加入kube_pod_info和kube_pod_labels来应用标签过滤器?

1 个答案:

答案 0 :(得分:0)

您可以使用+运算符来加入指标。在这里,group_left()将包含额外的标签:label_source,来自正确的指标kube_pod_labels。您要加入的指标被强制设为零(即0 * kube_pod_labels),这样它就不会影响第一个指标的结果。

(
kube_pod_info{namespace="test"}
)
   + on(namespace) group_left(label_source)
(
   0 * kube_pod_labels
)