gpt4 book ai didi

kubernetes - 在 Grafana 中显示普罗米修斯最后抓取的 Kubernetes Pod 中的指标

转载 作者:行者123 更新时间:2023-12-05 02:35:34 25 4
gpt4 key购买 nike

上下文

我们有一个 Spring Boot 应用程序,部署到 K8s 集群(有 2 个实例)中,配置了用于 Prometheus 的 Micrometer 导出器和 Grafana 中的可视化。

我的自定义指标

我已经实现了几个额外的 Micrometer 指标,它们报告了一些关于数据库 (PostgreSQL) 中业务数据的信息,我可以在 Grafana 中看到这些指标,但是对于每个 pod 是分开的。

问题:

对于我们在 Grafana 中的 2 个 pod - 我可以看到一组不同的相同指标,并且可以通过选择(按标签)其中一个 pod 来找到最新值。

但是,无法判断哪个 pod 报告了最新值。

有没有办法以某种方式始终显示最后抓取的 pod 的指标值(即它将包含最新的指标数据)?

现在为了查看最新的指标数据 - 我必须切换 pod 并猜测哪个具有最新值。

(所讨论的指标与数据库相关,因此无论从哪个 pod 请求它们都会产生相同的值。)

最佳答案

在Prometheus中,您可以使用topk()timestamp()函数获取最新scrape的标签:

topk(1,timestamp(up{job="micrometer"}))

然后可以在 Grafana 中使用它来填充包含实例名称的(隐藏)变量:

Name: instance
Type: Query
Query: topk(1,timestamp(up{job="micrometer"}))
Regex: /.*instance="([^"]*)".*/

我建议在 time range change 上激活刷新,以获取您的时间范围内的最后一次抓取。

然后您可以在仪表板的所有查询中使用该变量:

micrometer_metric{instance="${instance}"}

编辑:请求者希望在每次数据刷新时更新它

如果您想在每次数据刷新时更新它,则需要使用 AND logical operator 在仪表板的每个查询中使用它:

micrometer_other_metric AND ON(instance) topk(1,timestamp(up{job="micrometer"}))

vector1 AND vector2 results in a vector consisting of the elements of vector1 for which there are elements in vector2 with exactly matching label sets. Other elements are dropped.

关于kubernetes - 在 Grafana 中显示普罗米修斯最后抓取的 Kubernetes Pod 中的指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70522194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com