Spring Boot提供了一个Actuator模块,可以用来实现JVM监控并将监控数据可视化展示。下面是实现的完整攻略:
1. 添加JVM监控依赖
在项目的pom.xml文件中添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2. 配置监控端点
打开application.properties文件,添加以下配置:
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
配置含义:
management.endpoint.health.show-details=always
:显示健康检查的详细信息。management.endpoints.web.exposure.include=*
:将所有的端点都暴露出来。
3. 启动应用程序
启动应用程序后,在浏览器中输入http://localhost:8080/actuator
可以看到所有的可用端点。其中包括/jvm、/health、/metrics等。
例如,要查看JVM信息,可以在浏览器中输入http://localhost:8080/actuator/jvm
,会看到以下JSON格式的信息:
{
"name": "jvm",
"measurements": [
{
"statistic": "uptime",
"value": 2349614
},
{
"statistic": "systemload.average",
"value": 0.2
},
{
"statistic": "processors",
"value": 4
},
{
"statistic": "heap.usage",
"value": 0.31407905295110347
},
{
"statistic": "heap.committed",
"value": 263192576
},
{
"statistic": "heap.init",
"value": 268435456
},
{
"statistic": "heap.max",
"value": 3817865216
},
...
],
"availableTags": [
{
"tag": "buffer_pool",
"values": [
"direct",
"mapped"
]
},
{
"tag": "gc",
"values": [
"G1 Old Generation",
"G1 Young Generation",
"PS MarkSweep",
"PS Scavenge"
]
},
{
"tag": "memory.pool",
"values": [
"Code Cache",
"Compressed Class Space",
"G1 Eden Space",
"G1 Old Gen",
"G1 Survivor Space",
"Metaspace",
"PS Eden Space",
"PS Old Gen",
"PS Survivor Space"
]
},
{
"tag": "memory.type",
"values": [
"Heap",
"Non Heap"
]
}
]
}
示例1 - 监控JVM内存
我们可以使用JConsole来查看应用程序的内存使用情况。启动应用程序,并打开JConsole,选择“localhost:8080”进程,进入“MBeans”标签,展开“java.lang”节点,我们就可以看到与内存有关的监控项。
示例2 - 监控JVM垃圾回收
在控制台中启动应用程序的时候,可以添加如下命令行参数,来开启垃圾回收监控:
java -Xloggc:/tmp/gc.log -XX:+PrintGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -jar my-application.jar
启动应用程序后,会生成一个gc.log文件。我们可以使用GC日志分析工具分析日志文件,来查看垃圾回收的情况。
以上就是Spring Boot添加JVM监控实现数据可视化的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springboot添加jvm监控实现数据可视化 - Python技术站