spring-boot-actuator模块提供了一个监控和管理生产环境的模块,可以使用http、jmx、ssh、telnet等管理和监控应用。审计(Auditing)、健康(health)、数据采集(metrics gathering)会自动加入到应用里面。
仅需要在pom文件中添加下面的starter依赖即可:
<!-- 主要作用于生产环境对系统监控 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-
actuator</artifactId>
</dependency>
那么有哪些监控信息可以查看呢:
HTTP方法 | 路径 | 描述 | 鉴权 |
GET | /autoconfig | 查看自动配置的使用情况,该报告展示所有auto-configuration候选者及它们被应用或未被应用的原因 | true |
GET | /configprops | 显示一个所有@ConfigurationProperties的整理列表 | true |
GET | /beans | 显示一个应用中所有Spring Beans的完整列表 | true |
GET | /dump | 打印线程栈 | true |
GET | /env | 查看所有环境变量 | true |
GET | /env/{name} | 查看具体变量值 | true |
GET | /health | 查看应用健康指标 | false |
GET | /info | 查看应用信息 | false |
GET | /mappings | 查看所有url映射 | true |
GET | /metrics | 查看应用基本指标 | true |
GET | /metrics/{name} | 查看具体指标 | true |
POST | /shutdown | 允许应用以优雅的方式关闭(默认情况下不启用) | true |
GET | /trace | 查看基本追踪信息 | true |
最后我们来看下监控信息:
我们是否可以自定义一些监控信息呢,答案也是可能的,仅需要注册实现了
HealthIndicator接口的Spring
beans。具体的实现可以参看官方文档以及下面的一些案例,如果使用了mongo、redis等,则springboot会自动装配对应的health监控:
1、DiskSpaceHealthIndicator 低磁盘空间检测
2、DataSourceHealthIndicator 检查是否能从DataSource获取连接
3、MongoHealthIndicator 检查一个Mongo数据库是否可用(up)
4、RabbitHealthIndicator 检查一个Rabbit服务器是否可用(up)
5、RedisHealthIndicator 检查一个Redis服务器是否可用(up)
6、SolrHealthIndicator 检查一个Solr服务器是否可用(up)