Spring Boot提供了Actuator功能来完成类似的监控,通过HTTP、JMX,远程脚本来查询Spring Boot应用的配置、各种指标、健康程度等等。
监控以信息:
- Spring Boot的配置信息;
- Spring Boot的配置Bean信息;
- 最近请求HTTP信息;
- 数据源,NoSQL数据状态等;
- 在线查看日志内容,在线日志配置修改;
- 所有@RequestMapping注解的URL路径;
- 自动装配信息汇总;
- 打印虚拟机的线程栈;
- Dump内存
- 应用的各种指标汇总
- 自定义监控指标
Acutator使用方法
首先添加如下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
它提供了监控和管理你的Spring Boot应用的HTTP或者JMX端点
Spring Boot引入依赖后它将自动拥有审计、健康检查、Metrics监控功能
应用启动后,可以先访问/actuator如图:
- /actuator:接口展示,显示actuator提供的访问接口
然后访问/actuator/health如图:
- /actuator/health:健康检查,显示应用的健康信息,如磁盘、数据源、Redis等等,status值为UP说明应用是健康的,如果不健康会显示DOWN
metrics
metrics显示Spring Boot的性能指标,如JVM内存、CPU使用、JVM线程等等,如图:
如果想看单个度量详细信息,比如system.cpu.count度量可以进行如下访问如图:
日志查看loggers
loggers展示了应用中可配置的相关日志等级,访问接口:/actuator/loggers,如图:
可以看到访问的等级是INFO(configuredLevel是指配置的日志等级,默认是INFO)
如果想查看单个日志,例如查看com.netflix的日志,如图:
loggers提供了在应用运行时改变日志级别的能力,例如改变com.netflix的等级改为‘debug’,可以发送一个POST请求,如图:
改后:
线程栈信息
可以通过theraddump来获取虚拟机线程栈信息,该信息类似JDK自带的jstack命令的输出结果,线程栈表示某一时刻虚拟机正在做的事:如图: