带有 pod 标签的 Prometheus kubelet 指标
Prometheus kubelet metrics with pod labels
我正在尝试弄清楚如何使用 prometheus-stack 将 pod 标签从 kubelet 指标中获取到指标标签中。在我们的环境中,我们需要散列 pod 名称(由于长度限制),因此我们的应用名称、环境和单元名称保存在 pod 标签中。
我们正在使用 prometheus-stack(helm 安装)从 kubelet(/metrics
、/metrics/cadvisor
)收集指标,由于指标标签中缺少 pod 标签,因此很难知道是哪个指标属于哪个应用程序。
Prometheus-stack 正在使用 sd_kubernetes_config
和端点规则来收集 kubelet 指标,其中无法使用 pod 标签的 __meta
标签。是否有另一种方法如何在指标标签中获取该标签?
我还尝试使用 kubeStateMetrics
收集 pod_labels 指标,在那里我可以获得包含广告连播标签的指标,但我不知道如何以来自 cadvisor 的指标的方式显示这两个指标将显示其值,kubeStateMetrics
中的指标将用于显示其标签(在 Prometheus 图表中)。
感谢任何建议。
据我所知,您确实可以使用过滤指标 based on pod labels。看原回答:
You can use +
operator to join metrics. Here, group_left()
will include the extra label: label_source
from the right metric kube_pod_labels
. The metric you're joining is forced to zero ( i.e. 0 * kube_pod_labels
) so that it doesn't affect the result of first metric.
(
kube_pod_info{namespace="test"}
)
+ on(namespace) group_left(label_source)
(
0 * kube_pod_labels
)
事实上,指标可能又长又讨厌。然而,这是一种在 prometheus 中创建您所期望的有效方法,即带有 pod 标签的 kubelet 指标。
另请参阅 this guide - it is described how to join Prometheus metrics by label with PromQL and this another guide - 如何使用 PromQL 连接更有效地大规模查询 Prometheus 指标。
我正在尝试弄清楚如何使用 prometheus-stack 将 pod 标签从 kubelet 指标中获取到指标标签中。在我们的环境中,我们需要散列 pod 名称(由于长度限制),因此我们的应用名称、环境和单元名称保存在 pod 标签中。
我们正在使用 prometheus-stack(helm 安装)从 kubelet(/metrics
、/metrics/cadvisor
)收集指标,由于指标标签中缺少 pod 标签,因此很难知道是哪个指标属于哪个应用程序。
Prometheus-stack 正在使用 sd_kubernetes_config
和端点规则来收集 kubelet 指标,其中无法使用 pod 标签的 __meta
标签。是否有另一种方法如何在指标标签中获取该标签?
我还尝试使用 kubeStateMetrics
收集 pod_labels 指标,在那里我可以获得包含广告连播标签的指标,但我不知道如何以来自 cadvisor 的指标的方式显示这两个指标将显示其值,kubeStateMetrics
中的指标将用于显示其标签(在 Prometheus 图表中)。
感谢任何建议。
据我所知,您确实可以使用过滤指标 based on pod labels。看原回答:
You can use
+
operator to join metrics. Here,group_left()
will include the extra label:label_source
from the right metrickube_pod_labels
. The metric you're joining is forced to zero ( i.e.0 * kube_pod_labels
) so that it doesn't affect the result of first metric.
(
kube_pod_info{namespace="test"}
)
+ on(namespace) group_left(label_source)
(
0 * kube_pod_labels
)
事实上,指标可能又长又讨厌。然而,这是一种在 prometheus 中创建您所期望的有效方法,即带有 pod 标签的 kubelet 指标。
另请参阅 this guide - it is described how to join Prometheus metrics by label with PromQL and this another guide - 如何使用 PromQL 连接更有效地大规模查询 Prometheus 指标。