news 2026/5/23 9:19:26

Prometheus监控栈 监控java程序springboot

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Prometheus监控栈 监控java程序springboot

监控java程序springboot,Prometheus监控栈:Prometheus+Grafana+Alertmanager

一、软件环境介绍

Iava程序广泛运用于各类业务场景的开发:web网站、金融服务领域,以及访问量大的业务领域中。所以本章节主要以iava的web程序为例讲解,怎么将iavaweb-springboot程序接入prometheus

主机清单

职责ip地址备注
Prometheus服务器192.168.92.11docker-compose模式的prometheus
待监控Linux192.168.92.12待准备组件:openjdk17

监控架构

二、写一个简单的springboot程序

java编辑器中,新创建一个springboot程序,为后续步骤把springboot程序的性能数据抛出做准备。(我的这个springboot工程是之前写过的oshi-app)

。pom.xml(略)

。创建主启动类testproject.Application.java(略)

。创建application.yaml(略)

。写一个视图类controller.java、用于restful测试访问(略)

。maven reload看有否工程maven加载报错

。本机运行testproject工程,看能否访问http://localhost:8080/metrics/cpuload

三、让springboot程序抛出监控数据

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

micrometer-registry-prometheus

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

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

spring-boot-starter-actuator

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

。添加pom.xml依赖

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency>

。修改application.yaml

增加监控端点

server: port: 8080 # 开启tomcat指标 tomcat: mbeanregistry: enabled: true # 设置springboot应用的名称 spring: application: name: oshi-app # 暴露actuator端点数据 management: endpoints: web: exposure: include: '*' metrics: tags: application: ${spring.application.name}

。maven reload看有否工程maven加载报错

。本机运行springboot程序,访问端点数据

访问http://localhost:8080/actuator/prometheus接口,是否能获取相关指标

四、在Linux-test中部署springboot程序

4.1部署openjdk-17

test中,运行以下命令yum,需要安装openjdk(取决于本机编译用的是什么jdk版本如果本机用idk8,linux服务器也要装idk8,以此类推)

# 安装Java 17(需要root权限) sudo yum install -y java-17-openjdk.x86_64 #如果要装其他的版本,可以运行以下命令,从yum源中找到合适的jdk版本进行安装 yum search java|grep jdk # 查看java版本(验证安装) java -version

4.2 运行oshi-app的jar包

maven package打包,资源管理器中生成一个oshi-app-1.0-SNAPSHOT.jar文件

上传这个jar文件到test虚拟机的home目录,运行java命令-执行springboot程序

#以jar包方式运行springboot程序 java -jar oshi-app-0.0.1-SNAPSHOT.jar

浏览器中访问http://testip:8080/actuator/prometheus,确认可以采集到数据

五、prometheus中配置springboot的监控节点

5.1增加监控节点

在prometheus.yml文件中进行配置业务系统采集点,5s拉取一次指标,由于Prometheusserver部要在docker 中,所以访问主机IP 用test的ip

192.168.92.11的prometheus上,修改prometheus的配置文件

#进入docker-prometheus日录 cd /data/docker-prometheus #修改prometheus.yml vi prometheus/prometheus.yml

添加待监控的springboot监控

- job_name: 'springBoot' #监控任务名称,自定义标识 scrape_interval: 5s #采集间隔,每5秒采集一次指标 metrics_path: '/actuator/prometheus' #指标路径,Spring Boot Actuator的Prometheus端点 static_configs: - targets: ['192.168.92.12:8080'] #要监控的目标地址和端口 labels: instance: 'springboot服务器' #为这个目标添加标签,便于识别

保存配置后,让配置生效

批prometheus中执行 curl -X POST http://localhost:9090/-/reload

刷新访问http://192.168.92.11:9090/targets?search=、确认新监控的springboot服务器是否生效

5.2 springboot监控指标查询

HTTP请求 http_server_requests_seconds_count: 请求次数统计 http_server_requests_seconds_max: 单次HTTP请求耗时峰值(秒) http_server_requests_seconds_sum: 所有HTTP请求累计耗时(秒) JVM缓冲区 jvm_buffer_count_buffers: 缓冲区数量 jvm_buffer_memory_used_bytes: 缓冲区内存使用大小(字节) jvm_buffer_total_capacity_bytes: 缓冲区总容量大小(字节) 类信息 jvm_classes_loaded_classes: 当前已加载类的数量 jvm_classes_unloaded_classes_total: 已卸载类的总数 内存信息 jvm_memory_committed_bytes: JVM已提交内存大小(字节) jvm_memory_max_bytes: JVM最大可用内存大小(字节) jvm_memory_used_bytes: JVM当前已使用内存大小(字节) GC信息 jvm_gc_live_data_size_bytes: GC后存活数据大小(字节) jvm_gc_max_data_size_bytes: GC处理的最大数据量(字节) jvm_gc_memory_allocated_bytes_total: GC期间分配的内存总量(字节) jvm_gc_memory_promoted_bytes_total: 晋升到老年代的内存总量(字节) jvm_gc_pause_seconds: GC暂停时间总计(秒) jvm_gc_pause_seconds_max: 最大GC暂停时间(秒) 线程信息 jvm_threads_daemon_threads: 守护线程数 jvm_threads_live_threads: 存活线程数 jvm_threads_peak_threads: 峰值线程数 jvm_threads_states_threads{state="RUNNABLE"}: 不同状态下的线程数(如RUNNABLE状态) Tomcat信息 tomcat_threads_busy_threads: 忙碌的线程数 tomcat_threads_config_max_threads: 配置的最大线程数 tomcat_threads_current_threads: 当前线程数 tomcat_global_error_total: 总体报错数 tomcat_global_received_bytes_total: 接收的字节总数 tomcat_global_sent_bytes_total: 发出的字节总数 tomcat_global_request_max_seconds: 每秒最大请求数 tomcat_global_request_seconds: 每秒请求数 tomcat_sessions_active_current_sessions: 当前活跃会话数 tomcat_sessions_active_max_sessions: 活跃会话的最大数量 tomcat_sessions_alive_max_seconds: 会话活跃的最长时间(秒) tomcat_sessions_created_sessions_total: 累计创建的会话数 tomcat_sessions_expired_sessions_total: 累计失效的会话数 tomcat_sessions_rejected_sessions_total: 累计拒绝的会话数 进程信息 process_cpu_usage: CPU使用率 process_files_max_files: 可用的最大文件描述符数 process_files_open_files: 当前打开的文件描述符数 process_start_time_seconds: 进程启动时刻(自纪元以来的秒数) process_uptime_seconds: 进程运行时间(秒) 系统信息 system_cpu_count: CPU核心数 system_cpu_usage: 系统CPU使用情况 system_load_average_1m: 系统平均负载(过去1分钟)

5.3 grafana中添加springboot的监控模板

copy id to clipboard->grafana的dashboards中Import dashboard

https://grafana.com/grafana/dashboards/4701-jvm-micrometer/


版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/22 15:10:00

GPT-5.2震撼发布:你的“专家级”AI同事,正式上岗了!

一夜之间&#xff0c;AI从回答问题升级为交付成果。一份复杂的金融模型或项目计划&#xff0c;它能在几十分钟内完成&#xff0c;质量不输人类专家。本月&#xff0c;OpenAI在成立十周年之际&#xff0c;发布了GPT-5.2系列模型。这一次的升级&#xff0c;版本号虽然只是从5.1变…

作者头像 李华
网站建设 2026/5/10 21:34:52

如何用Open-AutoGLM重构AI流水线?7个生产环境验证的最佳实践

第一章&#xff1a;Open-AutoGLM模型架构Open-AutoGLM 是一个面向自动化自然语言理解与生成任务的开源大语言模型&#xff0c;其架构设计融合了现代Transformer的核心机制与领域自适应优化策略。该模型采用多层双向自注意力结构&#xff0c;并引入动态路由门控机制以增强不同任…

作者头像 李华
网站建设 2026/5/22 10:03:37

基于51/STM单片机智能浇花控制系统 物联网 WIFI无线传输 蓝牙控制 土壤湿度计设计 自动灌溉 大棚土壤湿度采集 光照补偿 智能花卉 成品 套件 DIY设计 实物+源程序+原理图+仿真+其它资料

本人从事毕业论文设计辅导10余载&#xff0c;撰写的毕业论文超2000余篇&#xff0c;为广大的应届毕业生节省了大量的设计和撰写时间。在单片机领域&#xff0c;参与设计51系列、STM32系列、Proteus仿真、JAVA上位机、Android Studio、物联网无线通信等千余套项目&#xff0c;具…

作者头像 李华
网站建设 2026/5/2 18:31:03

宏智树ai论文“去重焕新”大揭秘:宏智树AI降重降AIGC的神奇魔法

在论文写作的漫漫征途中&#xff0c;降重和应对AIGC&#xff08;人工智能生成内容&#xff09;检测是许多同学和研究者面临的棘手难题。辛苦写就的论文&#xff0c;可能因为重复率过高或者被检测出AIGC痕迹而面临返工的尴尬局面。别着急&#xff0c;今天就带大家走进宏智树AI的…

作者头像 李华