Prometheus基于Label的过滤

use*_*872 5 grafana prometheus

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

\n\n

kube_pod_信息

\n\n
\n

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

\n
\n\n

kube_pod_labels

\n\n
\n

kube_pod_labels{instance="kube-state-metrics:8080",job="kube-state-metrics",label_app="alertmanager",label_pod_template_hash="6d9f74d4c5",namespace=\xe2\x80\x9ctest",pod="alertmanager -6d9f74d4c5-xlqrv\xe2\x80\x9d,label_source=\xe2\x80\x9ck8s"}

\n
\n\n

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

\n\n

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

\n\n

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

\n

Kam*_*san 2

您可以使用+运算符来连接指标。在这里,group_left()将包括额外的标签:label_sourcefrom the right metric kube_pod_labels。您要加入的指标被强制为零(即0 * kube_pod_labels),以便它不会影响第一个指标的结果。

(
kube_pod_info{namespace="test"}
)
   + on(namespace) group_left(label_source)
(
   0 * kube_pod_labels
)
Run Code Online (Sandbox Code Playgroud)