(一)Actuator简介
参见Spring Boot 2.0 中使用 Actuator
对Actuator Endpoints简单进行归纳分类:
监控类:“端点信息”、“应用信息”、“外部化配置信息”、“指标信息”、“健康检查”、“Bean管理”、“Web URL 映射管理”、“Web URL 跟踪”
管理类:“外部化配置”、“日志配置”、“线程dump”、“堆dump”、“关闭应用”
Spring Cloud扩展Actuator Endpoints:
上下文重启:/restart
暂停:/pause
恢复:/resume
(二)具体实现
1、首先设置访问端口和根路径,暴露可访问的接口
#监控端口
management.server.port=8081
#监控根节点,不设置,就要在路径中加上“/actuator”
management.endpoints.web.base-path=/
#开启 actuator 所有端点,默认只开放 info、health端点;同时*在yml文件中是关键字,需要加引号“*”
management.endpoints.web.exposure.include=*
#显示健康的详细信息
management.endpoint.health.show-details=always
#激活 restart Endpoint
management.endpoint.restart.enabled=true
2、访问某个监控接口
备注:访问的路径上一定要加上“/actuator”路径,例如访问应用的环境变量:http://localhost:8081/actuator/env ,若设置management.endpoints.web.base-path=/
,则无需加“/actuator”路径。
(三)自定义健康指标
@SpringBootApplication
public class ConfigClientApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigClientApplication.class, args);
}
/**
* 自定义健康指标
*/
@Bean
public MyHealthIndicator myHealthIndicator(){
return new MyHealthIndicator();
}
private class MyHealthIndicator implements HealthIndicator{
@Override
public Health health() {
Health.Builder builder = Health.status(Status.UP);
//添加自定义指标
builder.withDetail("name", "MyHealthIndicator");
builder.withDetail("timestamp", System.currentTimeMillis());
return builder.build();
}
}
}