Spring Boot的Actuator Endpoint
目的:监控(发现并了解程序的运行指标)
并管理(受保护的shut down功能/调整日志)程序
访问方式:Http、JMX(默认会把更多端口放在JMX中)
依赖:spring-boot-starter-actuator
一些常用的Endpoint


如何访问Actuator Endpoint?
HTTP访问:/actuator/<id>
端口与路径
- management.server.address=
- management.server.port= 分开应用8080和管理的端口
- management.endpoints.web.base-path=/actuator
management.endpoints.web.path-mapping.<id>=路径
开启Endpoint
management.endpoint.<id>.enabled=true- management.endpoints.enabled-by-default=false
暴露Endpoint
- management.endpoints.web.exposure.include=*
- management.endpoints.web.exposure.include=info,health
- management.endpoints.jmx.exposure.exclude=
定制自己的Health Indicator
增加自己的指标,判断数据加载是否正常,基础设施是否运行良好,尤其是对于公司内部私有的基础设施,健康检查只能自己来实现了
目的:检查应用程序的运行状态
状态:
- Down-503
- OUT_OF_SERVICE-503
- UP-200
- UNKNOWN-200
spring boot自带的Health Indicator
- 机制:通过HealthIndicatorRegistry收集信息
- HealthIndicator实现具体的检查逻辑
配置项
- management.health.defaults.enabled=true|false
- management.health.id.enabled=true
- management.endpoint.health.show-details=always|when-authorized|never
自带的Health Indicator

DataSourceHealthIndicator extends AbstractHealthIndicator
doHealthCheck(Health.builder builder)
doDataSourceHealthCheck()
自定义Health Indicator
方法:
- spring-boot-starter-actuator依赖
- micrometer-registry-prometheus依赖
- 实现HealthIndicator接口
- 自定义检查逻辑,返回相应的health状态
- health中应包含状态和详细描述信息details
实例
application.properties部分内容

也可添加info信息,加入两个属性app.author和app.encoding
info.app.author=xxx
info.app.encoding=xxx
CoffeeIndicator.java

因此若data.sql若有insert语句,有coffee,则健康检查为up,否则若没有coffee,该coffeeIndicator,检查结果为down.