1. SpringBoot Actuator
1.1 简介
未来每一个微服务在云上部署以后,我们都需要对其进行监控、追踪、审计、控制等。SpringBoot就抽取了Actuator场景,使得我们每个微服务快速引用即可获得生产级别的应用监控、审计等功能。
1.x与2.x的不同
2. 如何使用SpringBoot Actuator
2.1 导入场景启动器
引入jar包
<!--引入监控功能-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2.2 暴露Endpoints
支持的暴露方式
- HTTP:默认只暴露health和info Endpoint
- JMX:默认暴露所有Endpoint
- 除过health和info,剩下的Endpoint都应该进行保护访问。如果引入SpringSecurity,则会默认配置安全访问规则
详细的看图
在配置文件配置
#配置Actuator监控功能
# management 是所有Actuator的配置
# management.endpoint.端点名.xxx 对某个端点的具体配置
management:
endpoints:
enabled-by-default: true #暴露所有端点信息,如果为false,则每个端点需要手动开启enabled: true
web:
exposure:
include: '*' #以web方式暴露
endpoint:
health:
show-details: always #配置health详细信息
enabled: true
最常使用的端点:详细版本
如果您的应用程序是Web应用程序(Spring MVC,Spring WebFlux或Jersey),则可以使用以下附加端点:
最常用的Endpoint
- Health:监控状况
- Metrics:运行时指标
- Loggers:日志记录
2.3 测试
2.3.1 测试beans
http://localhost:9080/actuator/beans
显示应用程序中所有Spring Bean的完整列表。
2.3.2 测试conditions
显示自动配置的所有条件信息,包括匹配或不匹配的原因。
2.3.2 测试health
显示应用程序运行状况信息。
2.3.2 测试metrics
2.4 Health Endpoint
健康检查端点,我们一般用于在云平台,平台会定时的检查应用的健康状况,我们就需要Health Endpoint可以为平台返回当前应用的一系列组件健康状况的集合。
重要的几点:
● health endpoint返回的结果,应该是一系列健康检查后的一个汇总报告
● 很多的健康检查默认已经自动配置好了,比如:数据库、redis等
● 可以很容易的添加自定义的健康检查机制
2.4 Metrics Endpoint
提供详细的、层