指标监控
SpringBoot Actuator
未来每一个微服务在云上部署以后,我们都需要对其进行监控、追踪、审计、控制等。SpringBoot就出去了 Actuator 场景,使得我们每个微服务快速引用即可获得生成级别的应用监控、审计等功能能。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
使用
- 引入场景
- 访问
http://localhost:8080/actuator/**
- health:健康状况
- info:详细信息
- 测试:
http://localhost:8080/actuator/beans
http://localhost:8080/actuator/configprops
http://localhost:8080/actuator/metrics
运行时指标信息http://localhost:8080/actuator/metrics/jvm.gc.pause
http://localhost:8080/actuator/endpointName/detalipath
暴露 Endpoints
监控端点,支持的暴露方式:
- Http:默认只暴露 health 和 info
- JMX:默认暴露所有 Endpoint
# management 是所有 actuator配置
# management.endpoint.端点名.xxx 对某个端点的具体配置
management:
endpoints: #所有监控端点的配置
enabled-by-default: true #默认开启所有监控端点。
web:
exposure:
include: '*' #默认以web方式暴露所有监控端点
endpoint:
health:
show-details: always
enabled: true # 手动开启指定监控端点(当默认关闭所有监控端点时)
info:
enabled: true
最常用的 Endpoint
- Health:健康状况
- Metrics:运行时指标
- Loggers:日志记录
1. Health Endpoint
健康检查端点,我们一般用于云平台,平台会定时的检查应用的健康状况,我们需要 Health Endpoint 为平台返回当前应用的一系列组件健康状况的集合。
- health endpoint 返回的结果,应该是一系列健康检查后的一个汇总报告
- 很多的健康检查默认已经自动配置好了,如数据库,redis等
- 可以很容易的添加自定义的健康检查机制。
2. Metrics Endpoint
提供详细的、层级的、空间指标信息,这些信息可以被 pull(主动推送)或 push(被动获取)方式得到。
- 通过Metrics对接多种监控系统
- 简化核心Metrics开发
- 添加自定义Metrics或者扩展已有Metrics