[英]Scrape Prometheus metrics from two endpoints in the same 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.