十分钟教你使用Prometheus监控Spring Boot工程
创始人
2025-07-09 21:31:42
0

在从零开始:使用Prometheus与Grafana搭建监控系统中,主要讲解了如何使用Prometheus监控系统资源,但是这远远不够,因为最重要的业务系统相关指标还未监控

在这篇分享如何在业务系统中使用Prometheus来监控业务系统指标,业务系统使用Spring Boot构建

我们要做什么?

在本示例中我们会使用Prometheus监控Spring Boot的各种指标,比如

  • • http平均耗时
  • • 当前 tomcat 连接数
  • • tomcat 最大连接数
  • • jvm相关指标
  • • http 请求数
  • • 系统运行时间

并在Grafana 进行展现,效果如下

图片图片

关键技术介绍

我们会在spring boot 工程中引入micrometer-registry-prometheus、spring-boot-starter-actuator来实现指标的暴露,下面对这两个组件进行一个介绍

micrometer-registry-prometheus

Micrometer它是Java生态中一个组件,可以把它理解为metric界的SLF4J。

Micrometer 为 Java 平台上的性能数据收集提供了一个通用的 API,它提供了多种度量指标类型(Timers、Guauges、Counters等),同时支持接入不同的监控系统,例如 Influxdb、Graphite、Prometheus 等。这里我们使用micrometer-registry-prometheus针对prometheus的实现。

spring-boot-starter-actuator

Spring Boot Actuator是Spring Boot提供用于对应用系统进行自省和监控的功能模块,基于此开发人员可以方便地对应用系统某些监控指标进行查看、统计、审计、指标收集等。Actuator提供了基于Http端点或JMX来管理和监视应用程序。

系统配置

Spring Boot 工程配置

  1. 1. 添加 maven 依赖

    org.springframework.boot
    spring-boot-starter-actuator


    io.micrometer
    micrometer-registry-prometheus
  1. 1. 在application.properties,开启监控的端点,这里我们的系统名称为 backend
#监控的端点
management.endpoints.web.exposure.include=*
#应用程序名称,在prometheus 上会显示
management.metrics.tags.application=${spring.application.name}
#tomcat 指标需要开启
server.tomcat.mbeanregistry.enabled=true
  1. 1. 启动服务查看,访问actuator/prometheus接口,是否能获取相关指标

图片图片

Prometheus 配置

  1. 1. 在prometheus.yml文件中进行配置业务系统采集点,5s 拉取一次指标,由于Prometheus server 部署在docker 中,所以访问主机IP 用host.docker.internal
#业务系统监控          
  - job_name: 'SpringBoot'
    # Override the global default and
    scrape_interval: 5s
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['host.docker.internal:8080']

图片图片

Grafana 配置

访问https://grafana.com/grafana/dashboards/4701-jvm-micrometer/,并下载

图片图片

并在Grafana 导入,关联Prometheus数据源

图片图片

这会还看不到数据,因为Prometheus没启动,配置未生效

验证

Prometheus验证

启动Prometheus,并访问9093端口,查看是否能查询到业务系统指标,比如jvm_memory_used_bytes

图片图片

Grafana 验证

访问我们导入的大屏,可以看到已收集到相关数据,包括系统启动时间、运行时间、tomcat 连接池信息、JVM相关信息等

图片图片

总结

以上我们介绍了如何使用Prometheus来监控Spring Boot工程相关指标并使用Grafana 进行展现,下一篇我们会将如何在Spring Boot自定义业务指标,并对关键指标进行监控和告警。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
规避非法攻击 用好路由器远程管... 单位在市区不同位置设立了科技服务点,每一个服务点的员工都通过宽带路由器进行共享上网,和单位网络保持联...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
范例解读VB.NET获取环境变... VB.NET编程语言的使用范围非常广泛,可以帮助开发人员处理各种程序中的需求,而且还能对移动设备进行...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...