我想弄清楚如何使用 prometheus-stack 将 pod 标签从 kubelet 指标获取到指标标签。在我们的环境中,我们需要对 pod 名称进行哈希处理(由于长度限制),以便我们的应用程序名称、env 和单元名称保存在 pod 标签中。
我们使用 prometheus-stack(helm 安装)从 kubelet 收集指标(/metrics
, /metrics/cadvisor
)并且由于指标标签中缺少 pod 标签,因此很难知道哪个指标属于哪个应用程序。
Prometheus-stack 正在使用sd_kubernetes_config
使用端点规则来收集 kubelet 指标,其中__meta
无法使用 Pod 标签的标签。还有另一种方法可以在度量标签中获取该标签吗?
我还尝试使用收集 pod_labels 指标kubeStateMetrics
,我可以在其中获取包含 pod 标签的指标,但我无法弄清楚如何以 cadvisor 中的指标将显示其值和指标的方式显示这两个指标kubeStateMetrics
将用于显示其标签(在普罗米修斯图中)。
感谢您的任何建议。
据我所知你真的可以使用过滤指标基于 pod 标签 https://stackoverflow.com/questions/60067654/prometheus-filtering-based-on-labels。看一下原答案:
您可以使用+
运算符来连接指标。这里,group_left()
将包括额外的标签:label_source
从正确的度量kube_pod_labels
。您要加入的指标被迫为零(即0 * kube_pod_labels
),这样它就不会影响第一个指标的结果。
(
kube_pod_info{namespace="test"}
)
+ on(namespace) group_left(label_source)
(
0 * kube_pod_labels
)
事实上,指标可能又长又烦人。然而,在 prometheus 中创建您所期望的内容是一种有效的方法,即带有 pod 标签的 kubelet 指标。
另请参阅本指南 https://ypereirareis.github.io/blog/2020/02/21/how-to-join-prometheus-metrics-by-label-with-promql/- 描述了如何使用 PromQL 按标签加入 Prometheus 指标以及这是另一个指南 https://grafana.com/blog/2021/08/04/how-to-use-promql-joins-for-more-effective-queries-of-prometheus-metrics-at-scale/- 如何使用 PromQL 连接更有效地大规模查询 Prometheus 指标。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)