普罗米修斯kubelet度量与吊舱标签



我正试图找出如何使用prometheus堆栈将pod标签从kubelet度量中获取到度量标签中。在我们的环境中,我们需要散列pod名称(由于长度限制(,以便我们的应用程序名称、env和单元名称保存在pod标签中。

我们使用prometheus堆栈(helm安装(从kubelet(/metrics/metrics/cadvisor(收集度量,由于度量标签中缺少pod标签,很难知道哪个度量属于哪个应用程序。

Prometheus堆栈使用带有端点规则的sd_kubernetes_config来收集kubelet度量,其中不能使用pod标签的__meta标签。有没有其他方法可以在公制标签中获得这些标签?

我还尝试使用kubeStateMetrics收集pod_labels度量,在那里我可以获得包含pod标签的度量,但我不知道如何显示这两个度量,即来自cadvisor的度量将显示其值,而来自kubeStateMetrics的度量将用于显示其标签(在Prometheus图中(。

谢谢你的建议。

据我所知,您可以真正使用基于pod标签的过滤度量。看看最初的答案:

您可以使用+运算符加入度量。这里,group_left()将包括来自右侧度量kube_pod_labels的额外标签label_source。您加入的度量被强制为零(即0 * kube_pod_labels(,这样它就不会影响第一个度量的结果。

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

事实上,衡量标准可能是漫长而令人讨厌的。然而,在prometheus中,创建您所期望的内容是一种有效的方法,即带有pod标签的kubelet度量。

另请参阅本指南-它描述了如何通过PromQL标签连接Prometheus度量,以及另一本指南-如何使用PromQL连接在规模上更有效地查询Prometheus度量。

最新更新