繁体   English   中英

带有 pod 标签的 Prometheus kubelet 指标

[英]Prometheus kubelet metrics with pod labels

我想弄清楚,如何使用 prometheus-stack 将 pod 标签从 kubelet 指标中获取到指标标签中 在我们的环境中,我们需要 hash pod 名称(由于长度限制),因此我们的应用程序名称、环境和单元名称保存在 pod 标签中。

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

Prometheus-stack 使用 sd_kubernetes_config 和端点规则来收集 kubelet 指标,其中 __meta 标签无法用于 pod 标签。 还有另一种方法如何在度量标签中获取该标签?

我还尝试使用 kubeStateMetrics 收集 pod_labels 指标,我可以在其中获取包含 pod 标签的指标,但我无法弄清楚如何以 cadvisor 的指标将显示其值的方式显示这两个指标,而 kubeStateMetrics 的指标将用于显示它的标签(在普罗米修斯图中)。

感谢您的任何建议。

据我所知,您真的可以使用基于 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 指标。

另请参阅本指南- 它描述了如何通过 label 将 Prometheus 指标与 PromQL 和另一个指南- 如何使用 PromQL 连接以更有效地大规模查询 Prometheus 指标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM