SpringBoot核心技术:你了解Actuator开放指定监控节点吗?

之前章节SpringBoot核心技术:探究Actuator的默认开放节点 & 详细健康状态讲解了spring-boot-actuator默认开放的节点以及如何修改查看详细的健康信息,那我们怎么设置开放指定的节点访问呢?

本章目标

开放spring-boot-actuator的指定节点访问。

构建项目

由于我们在SpringBoot核心技术:探究Actuator的默认开放节点 & 详细健康状态已经创建了项目,之前章节的源码已经上传到码云,访问:SpringBoot源码汇总下载源码,下载完成后使用idea工具打开即可,我们在之前的基础上修改。

开放指定节点

management.endpoints.web.exposure.include的配置字段我们已经了解到了在org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointProperties属性配置类内,而且exposure.include的值默认为["health","info"]

除此之外通过spring-configuration-metadata.json元数据配置文件内还知道了management.endpoints.web.exposure.include配置参数的类型为java.util.Set<java.lang.String>,这样我们就知道了该如何进行修改配置了,修改application.yml配置文件如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 管理节点配置
management:
endpoints:
web:
# actuator的前缀地址
base-path: /
# 开放指定节点
exposure:
include:
- health
- info
- mappings
- env

由于management.endpoints.web.exposure.includejava.util.Set<java.lang.String>类型,那么我就可以采用中横线换行形式进行配置(这是SpringBoot采用yaml配置文件风格的约定),
一个- xxx代表一个配置的值。

当然我们采用数组的形式也是可以的,如下所示:

1
2
3
4
5
6
7
8
9
# 管理节点配置
management:
endpoints:
web:
# actuator的前缀地址
base-path: /
# 开放指定节点
exposure:
include: ["health","info","mappings","env"]

开放全部节点

如果不做节点的开放限制,可以将management.endpoints.web.exposure.include配置为*,那么这样就可以开放全部的对外监控的节点,如下所示:

1
2
3
4
5
6
7
8
9
# 管理节点配置
management:
endpoints:
web:
# actuator的前缀地址
base-path: /
# 开放指定节点
exposure:
include: "*"

内置节点列表

开放全部节点后在项目启动时,控制台会打印已经映射的路径列表,spring-boot-actuator内置了丰富的常用监控节点,详见如下表格:

节点 节点描述 是否默认启用
auditevents 公开当前应用程序的审核事件信息。
beans 显示应用程序中所有Spring bean的完整列表。
conditions 显示在配置和自动配置类上评估的条件以及它们匹配或不匹配的原因。
configprops 显示所有的整理列表@ConfigurationProperties。
env 露出Spring的属性ConfigurableEnvironment。
health 显示应用健康信息。
httptrace 显示HTTP跟踪信息(默认情况下,最后100个HTTP请求 - 响应交换)。
info 显示任意应用信息。
loggers 显示和修改应用程序中记录器的配置。
metrics 显示当前应用程序的“指标”信息。
mappings 显示所有@RequestMapping路径的整理列表。
scheduledtasks 显示应用程序中的计划任务。
shutdown 允许应用程序正常关闭。
threaddump 执行线程转储。
sessions 允许从Spring Session支持的会话存储中检索和删除用户会话。使用Spring Session对响应式Web应用程序的支持时不可用。

总结

通过本章详细你应该可以知道你需要开发的节点了,根据具体的业务需求开放不同的节点。

注意:节点开放一定要慎重,不要过度开放接口,也不要方便盲目填写*开放全部节点。

源码位置

我在星球等你提问

如果你有技术相关的问题想要咨询恒宇少年,请去博客(http://blog.yuqiyu.com)首页左侧导航栏,点击`知识星球`微信扫码加入我的星球。

与恒宇少年面对面

如果你喜欢恒宇少年的相关文章,那么就去微信公众号(恒宇少年)关注我吧!!!
当然你也可以去 SpringCloud码云源码 项目底部扫描微信公众号二维码关注我,感谢阅读!!!

恒宇少年的干货系列

恒宇少年的开源框架

这段时间一直在编写开源的相关框架,致力于公司使用的框架升级以及开源计划,将公司使用到的工具以及插件进行升级重构并且开源。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×