使用 Prometheus 监控 Spring Boot 应用程序

Posted

技术标签:

【中文标题】使用 Prometheus 监控 Spring Boot 应用程序【英文标题】:Spring Boot application monitoring with Prometheus 【发布时间】:2020-05-21 13:57:04 【问题描述】:

我们正在研究托管在物理服务器上的 Spring Boot 应用程序的监控和警报机制。经过一番研究,决定去

Actuators - 全方位监控应用程序

Prometheus - 度量存储

Grafana - 用于仪表板可视化和警报

在普罗米修斯出现之前一切顺利。在将指标提供给指标存储时遇到问题。

prometheus.yml

scrape_configs: - job_name: 'spring-actuator' metrics_path: '/actuator/prometheus' scrape_interval: 5s static_configs: - targets: ['localhost:8080']

Prometheus 服务器日志

level=info ts=2020-02-05T15:05:20.873Z caller=main.go:762 msg="配置文件加载完成" filename=prometheus.yml level=info ts=2020-02-05T15:05:20.873Z caller=main.go:617 msg="服务器已准备好接收网络请求。"

Prometheus 仪表板显示没有要显示的数据

旁注,Spring Boot 服务已启动,并在 localhost:8080/actuator/prometheus 被命中时返回数据。禁用了 Actuator 端点的敏感性。

actuator/prometheus 端点结果:

【问题讨论】:

grafana 是否真的在同一台主机上运行?在 docker 中运行不计入 docker 镜像中的 localhost 会将请求保留在实例中。 Spring boot 应用、Prometheus、Grafana 都在我的本地机器上运行。这里不涉及码头工人 您可以将整个输出添加到 txt 中吗?第二个问题 - 您实际上是否在仪表板中查询任何 Prometheus 指标? 【参考方案1】:

信息太少,无法回答这个问题,但每当我看到没有可显示的数据时,这与指标不一致、仪表设置错误或查询错误有关。

您需要在执行器/prometheus 端点中查找错误/潜在问题,可能有一些关于此的信息。

如果您提交端点输出,我很乐意提供帮助。

【讨论】:

谢谢,已附加执行器/prometheus 端点。请检查

以上是关于使用 Prometheus 监控 Spring Boot 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

使用 Prometheus + Grafana + Spring Boot Actuator 监控应用

使用 Prometheus 监控 Kubernetes 集群中的 Spring Boot 应用程序

Spring Boot 整合 Prometheus

Spring Boot 整合 Prometheus

Spring Boot 整合 Prometheus

Spring Boot 整合 Prometheus