当前位置: 首页 > news >正文

Prometheus+Grafana轻松实现SpringBoot应用监控

1.引言

在微服务架构盛行的今天,Spring Boot应用因其快速开发、易部署的特性成为企业级应用的首选。然而,随着系统复杂度的提升,应用的稳定性、性能瓶颈和潜在故障逐渐成为运维的痛点。监控作为保障系统可靠性的关键手段,能够帮助开发者实时感知应用状态、快速定位问题根源,甚至通过告警机制提前预防故障。

传统的监控方式(如日志分析、手动检查)效率低下,难以应对分布式系统的动态变化。而基于Prometheus + Grafana的监控方案,通过自动化数据采集、实时可视化分析和智能告警,为Spring Boot应用提供了全生命周期的监控能力。

本文将从零开始,逐步搭建一套完整的监控系统,覆盖从应用端点暴露到数据可视化的全流程。

整体架构与原理

  1. Spring Boot应用:通过Actuator模块暴露监控端点(如/actuator/prometheus),提供应用内部的性能指标(如CPU、内存、HTTP请求等)。
  2. Prometheus:作为监控核心,定期从Spring Boot的Actuator端点拉取指标数据,存储为时间序列数据,并通过PromQL支持灵活查询。
  3. Grafana:作为可视化工具,连接Prometheus作为数据源,通过预设仪表盘展示关键指标,辅助运维决策。

架构图
在这里插入图片描述

2. Spring Boot应用开放对外暴露的端点

1.添加Actuator依赖

在Spring Boot项目的pom.xml中引入Actuator依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

2.配置Actuator端点

application.yml中启用Prometheus端点并暴露HTTP路径:

management:endpoints:web:exposure:include: "*"endpoint:prometheus:enabled: true  # 启用Prometheus端点

3.验证端点

启动应用后访问http://localhost:8080/actuator/metrics,可看到基础指标(如JVM内存、线程数),

但格式为Spring Boot默认的JSON,非Prometheus兼容格式。

在这里插入图片描述

2. 应用监控数据与Prometheus数据转换

Spring Boot通过Micrometer将应用指标(如JVM内存、HTTP请求数)转换为Prometheus兼容的格式(时间序列+标签)。Prometheus无需额外转换,直接拉取即可。

1.添加Micrometer依赖

在Spring Boot项目的pom.xml中引入Micrometer(Prometheus适配器)依赖:

<dependency><groupId>io.micrometer</groupId><artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

2.启用Prometheus

management:endpoints:web:exposure:include: "*"endpoint:prometheus:enabled: true  # 启用Prometheus端点health:show-details: always

3.验证端点

启动应用后,访问http://localhost:8080/actuator/prometheus,应返回类似以下格式的指标数据:
在这里插入图片描述

3. Docker部署Prometheus

1.编写Prometheus配置文件

创建prometheus.yml,配置Spring Boot应用为监控目标:

global:scrape_interval: 15s  # 数据拉取间隔scrape_configs:- job_name: 'springboot-app'metrics_path: '/actuator/prometheus'static_configs:- targets: ['host.docker.internal:8080']  # 本地Docker需替换为宿主机IP

2.拉取Prometheus镜像并启动

docker pull prom/prometheus
docker run -d --name prometheus \-p 9090:9090 \-v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml \prom/prometheus

3.验证Prometheus

访问http://localhost:9090,在Targets页面检查Spring Boot应用是否显示为UP状态。
在这里插入图片描述

4. Docker部署Grafana

1.拉取Grafana镜像并启动

docker pull grafana/grafana
docker run -d --name grafana \-p 3000:3000 \grafana/grafana

2.登录Grafana

访问http://localhost:3000,默认用户名/密码为admin/admin

注意:首次登录后需要修改密码!

3.添加Prometheus数据源

  1. 进入Grafana界面,点击左侧菜单ConnextionsData SourcesAdd data source
  2. 选择Prometheus,填写URL为http://host.docker.internal:9090(或宿主机IP)。
  3. 点击Save & Test,确认连接成功。
    在这里插入图片描述

4.监控效果

在这里插入图片描述

通过 Grafana 仪表盘,集中展示了 Spring Boot 应用的核心监控指标,包括
应用健康度(Actuator 健康状态、运行时长、线程活跃数);
JVM 资源使用(堆内存/非堆内存占用、GC 次数与耗时);
HTTP 请求性能(请求总量、错误率、平均响应时间、QPS);
Tomcat 线程池(活跃线程数、任务队列积压量)。
这些可视化面板帮助团队快速定位性能瓶颈、资源泄漏或服务异常,实现从基础设施到业务层的全链路可观测性。

http://www.dtcms.com/a/434219.html

相关文章:

  • 山东省住房建设厅网站58同城网站的建设目标是什么
  • 【金仓数据库】ksql 指南(一) 连接本地 KingbaseES 数据库与基础交互
  • SpringCloudGateway:像城市交通指挥中心一样的API网关
  • Kafka 安全SASL 认证全栈实战从 JAAS 到 Kerberos、PLAIN、SCRAM、OAUTH 与委托令牌
  • 设计公司网站图wordpress壁纸
  • 早厦门构网站建设湖州网站建设服务
  • 企业网站建设网站优化linux类似wordpress
  • 保险微网站制作wordpress 插件安装在哪个文件夹
  • 网站模板 自适应新手小白怎么开网店
  • 的广州建网站的公司自己做网站需要做啥
  • 苏州怎么制作网页网站站群网站程序
  • 凡科网站后台登陆wordpress 防止被黑
  • 内部劵网站怎么做门户网站建设关系到
  • 什么牛网站建设河南网站推广优化公司
  • 邢台做移动网站多少钱网站后台如何做产品展示
  • 互联网网站建设新闻wordpress中文购物主题
  • 做网站帮外国人淘宝呼叫中心
  • 电商网站开发的引言营销策划有限公司经营范围
  • 网站备案流程及资料青岛高级网站建设服务
  • 重庆最有效的网站推广企业官网用什么cms系统
  • 青岛网站建设q.479185700強部门网站建设多少钱
  • 制作一个网站的成本莆田seo
  • 思帽西宁网站建设html公司网页
  • 黄冈网站建设流程网页版抖音入口官网
  • 利用大平台做网站网页设计模板图片花简单
  • 怎么给网站做404界面便民网站开发
  • 网站如何做rss订阅南京企业做网站
  • 代运营主要做什么html搜索引擎优化
  • 可信网站认证申请网页制作网页
  • 做网站ps分辨率给多少化妆品网站建设的维护