kubernetes Prometheus kubelet metrics with pod labels [关闭]

xbp102n0  于 2024-01-07  发布在  Kubernetes
关注(0)|答案(1)|浏览(165)

**已关闭。**此问题为not about programming or software development。目前不接受回答。

此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题相关,可以发表评论,说明在何处可以回答此问题。
上个月关门了。
Improve this question
我正在尝试如何使用prometheus-stack从kubelet metrics中获取pod标签**。在我们的环境中,我们需要散列pod名称(由于长度限制),以便我们的应用名称,env和单元名称保存在pod标签中。
我们正在使用prometheus-stack(helm安装)从kubelet(/metrics/metrics/cadvisor)收集指标,由于指标标签中缺少pod标签,很难知道哪个指标属于哪个应用程序。
Prometheus-stack正在使用sd_kubernetes_config和endpoint规则来收集kubelet指标,其中pod标签的__meta标签不能使用。有没有其他方法可以在指标标签中获得标签?
我还尝试使用kubeStateMetrics收集pod_labels指标,在这里我可以获得包含pod标签的指标,但我无法弄清楚如何以cadvisor的指标显示其值,kubeStateMetrics的指标将用于显示其标签的方式显示这两个指标(在Prometheus图中)。
谢谢你的建议。

ct3nt3jp

ct3nt3jp1#

据我所知,你真的可以使用过滤指标based on pod labels。看看原始答案:
您可以使用+运算符来连接度量。这里,group_left()将包括来自正确度量kube_pod_labels的额外标签:label_source。您要连接的度量被强制为零(即0 * kube_pod_labels),以便它不会影响第一个度量的结果。

  1. (
  2. kube_pod_info{namespace="test"}
  3. )
  4. + on(namespace) group_left(label_source)
  5. (
  6. 0 * kube_pod_labels
  7. )

字符串
事实上,这样的指标可能会很长,也很烦人,但是在prometheus中,这是一种有效的方法来创建你所期望的东西,那就是带有pod标签的kubelet指标。
还可以看看this guide-它描述了如何通过PromQL和this another guide的标签连接Prometheus指标-如何使用PromQL连接来更有效地查询Prometheus指标。

相关问题