[英]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.