繁体   English   中英

在 Grafana 中显示来自 Prometheus 最后抓取的 Kubernetes Pod 的指标

[英]Show metrics in Grafana from the Kubernetes Pod that was scraped last by Prometheus

语境

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

我的自定义指标

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

问题:

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

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

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

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

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

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

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}"}

暂无
暂无

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

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