提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
目录
一、Actuator介绍
二、集成步骤
三、重要端点介绍
1、/actuator
2、/actuator/env
3、/actuator/heapdump
4、/actuator/metrics
5、/actuator/shutdown
6、/loggers
7、/threaddump
8、自定义端点
总结
提示:以下是本篇文章正文内容,下面案例可供参考
一、Actuator介绍
Actuator 模块提供了生产级别的功能,比如健康检查,审计,指标收集,HTTP 跟踪等,帮助我们监控和管理Spring Boot 应用
二、集成步骤
1、添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
application.yml文件添加配置
management:
endpoint:
shutdown:
enabled: true
endpoints:
web:
exposure:
include: "*"
health:
show-details: always
注意:配置文件配置不当,启动服务的时候,会报连接失败,这个错误对应的场景有很多,网上的帖子也特别多,但是对于原有服务集成Actuator这个场景来说,就是配置文件的问题,可以逐个屏蔽配置项来进行排查。
不同于Actuator 1.x,Actuator 2.x 的大多数端点默认被禁掉。 Actuator 2.x 中的默认端点增加了/actuator前缀。默认暴露的两个端点为/actuator/health和 /actuator/info
三、重要端点介绍
1、/actuator
查看哪些端点是开放的,通过get请求来访问
例如:http://localhost:8080/actuator
2、/actuator/env
查看当前环境属性,尤其是多个springboot环境,可以通过get请求来获取加载的所有配置属性
例如:http://localhost:8080/actuator/env
3、/actuator/heapdump
生成当前JVM的堆文件,我们可以使用 JDK 自带的 Jvm 监控工具 VisualVM 打开此文件查看内存快照,进行相关的内存分析。文件直接通过浏览器进行下载。
实用,实用,实用,重要的事情说三遍!
通常我们要访问生产的服务器,并生成heapdump文件,需要运维的配合,而且文件也很大,下载也是个问题,那么通过监控来达成我们的目的,就非常的便捷了。
此功能占用IO和带宽,避免频繁使用。
4、/actuator/metrics
查看所有可追踪的度量,这个get请求会返回所有可以查看的细项,通过在链接后拼接细项名称,可以查看细项的明细。
例如:http://localhost:8080/actuator/metrics/jvm.memory.used
这个例子查的就是JVM已用内存,在这个基础上,我们还可以查看当前已用内存中某一块区域使用了多少内存,http://localhost:8080/actuator/metrics/jvm.memory.used?tag=id:Metaspace
常见的一些JVM指标参照上图
5、/actuator/shutdown
关闭服务,通常使用场景:优雅停机
需要POST访问,生产慎用!
6、/loggers
查看当前日志级别,通常请求返回的信息过多,我们可以通过精简链接进行筛选
例如:http://localhost:8080/actuator/loggers/root
这个端点的强大之处在于:可以实时修改系统的日志级别
通过POST请求该地址,参数:{"configuredLevel": "ERROR"}
修改过后,再次查看日志级别,发现这时候日志级别已经发生了变化,这个特性很实用,生产上日志不敢过度开启,一般以ERROR为主,如果要配合查问题,那自然要调整日志级别,在不重启服务的情况下就能达成我们的目的,自然是最好的。
7、/threaddump
查看当前线程情况,主要展示了线程名、线程ID、线程的状态、是否等待锁资源、线程堆栈等信息
8、自定义端点
自定义端点,可以实现我们想要的功能,比如对某一个、某几个请求做统计,我们通过metrics去访问这些细项。
Actuator提供的各get接口,返回的数据都是JSON串,不太美观,有的返回的信息量很大,需要我们自己去筛选出来我们关心的常用指标。例如JVM的信息、线程的信息、内存的使用情况等等。
对于经典的CPU飙升、内存飙升场景,快速拿到快照信息进行分析。
总结
每天进步一点点!