1.使用
- 为什么使用?
- 未来每一个微服务在云上部署以后,我们都需要对其进行监控、追踪、审计、控制等。SpringBoot就抽取了Actuator场景,使得我们每个微服务快速引用即可获得生产级别的应用监控、审计等功能。
- 引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- 以web方式暴露即可
management:
endpoints:
enabled-by-default: true
web:
exposure:
include: '*'
- 常用端点
- 使用:health 显示应用程序运行状况信息。(返回当前应用健康结果)哪一个断点导致down
management:
endpoint:
health:
show-details: always
- 使用:Metrics 运行时指标(提供空间指标信息)
可以只开放几个端点
设置默认开启所有监控端点都为 false
然后手动加入几个端点
info:enabled:true
- 定制自定义检测组件health是否健康实现接口即可
- 定制info信息实现接口即可(配置文件中写)
- 定制metrics放到注册中心中(默认配置了很多信息)
- Loggers 日志记录
- 定义端点
@Component
@Endpoint(id = "myendpoint")
public class DockerEndpoint {
@ReadOperation
public Map getDockerInfo(){
return Collections.singletonMap("info","docker started...");
}
@WriteOperation
private void restartDocker(){
System.out.println("docker restarted....");
}
}
2.可视化(管理其他的server)
- 在管理中pom文件引入spring-boot-admin-starter-server监控配置
- 在主配置类上写@EnableAdmin
- 在其他server的pom文件中引入spring-boot-admin-starter-client
- 在配置文件中配置 boot.admin.client.url=管理的地址
使用ip注册进来 - 然后服务数据被管理收集(这些数据就是之前的Actuator的数据)
3.高级特性
①profile功能(多环境适配)
- 隔离生产环境测试环境
- 测试配置文件和生产配置文件
(通过环境配置) - 使用
- ● 默认配置文件 application.yaml;任何时候都会加载
● 指定环境配置文件 application-{env}.yaml
● 激活指定环境
○ 配置文件激活
○ 命令行激活:java -jar xxx.jar --spring.profiles.active=prod --person.name=haha
■ 修改配置文件的任意值,命令行优先
● 默认配置与环境配置同时生效
● 同名配置项,profile配置优先
②外部化配置
- 将所有信息抽取为文件放在web外集中管理
- 获取配置信息的值
- 注意:类路径的根路径都时Resources下和java下都时类路径的根路径
- 找配置文件的路径
(1) classpath 根路径
(2) classpath 根路径下config目录
(3) jar包当前目录
(4) jar包当前目录的config目录
(5) /config子目录的直接子目录 - 指定环境优先,外部优先