SpringBoot2.X实战Actuator监控工具
源代码仓库:github.com/zhshuixian/learn-spring-boot-2
Spring Boot 作为提高开发效率的框架,集成了许多的附加功能,例如 Spring Boot Actuator 监控工具,可以作为你在生产环境监视和管理的工具。使得开发者可以用个 HTTP 或者 JMX 的方式,审核、收集生产环境中的运行状况等指标。
开始使用 Spring Boot Actuator
新建 项目 14-spring-boot-actuator ,引入 Actuator 工具的 starter 启动器 spring-boot-starter-actuator
Actuator 会配置一些 RESTful API 接口,其本身是不带安全验证功能的,在正式的项目可以参考前面 Spring Security 或者 Apache Shiro 的文章,添加安全控制的模块。
// Gradle 依赖implementation "org.springframework.boot:spring-boot-starter-actuator"
Maven
<dependencies> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
1、Actuator 端点
Actuator 端点允许你通过 RESTful API 接口监控应用程序并与之交互,其主要分为两类:内置端点和自定义端点。内置端点提供基本的应用程序运行状况信息;自定义端点允许你自定义在运行期间监控某些指标。
每个端点都可以配置为允许 HTTP 远程访问,当配置为可用时候,端点会映射到 URL(如果没有配置,则使用默认值)。
端点默认使用 GET 方式访问 /actuator/{Id} ,内置端点的 Id 和描述如下所示:
Id 描述
auditevents
当前应用程序的审核事件信息
beans
显示应用程序中所有 Spring Bean 以及它们的关系
caches
可用缓存信息 cacheManagers
conditions
自动配置生效条件以及其是否生效、不生效的原因
configprops
显示所有配置属性
env
获取全部环境属性
health
显示应用程序运行状况信息
httptrace
显示 HTTP 请求跟踪信息(默认最后 100 个 HTTP 请求)
info
显示任意应用程序信息
loggers
显示并修改应用程序中记录器的配置
metrics
显示当前应用程序的"指标"信息
mappings
显示所有路径 URL,即@RequestMapping
注解的 URL
scheduledtasks
显示应用程序的计划任务
sessions
允许从 Spring Session 中检索和删除用户会话(基于 Spring Session 的 Web 应用)
shutdown
让应用程序正常关闭
threaddump
执行线程转储
更多端点参考:https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html
2、应用配置
application.properties 文件,下面列出常见的端点配置:
# 暴露全部可用的内置端点management.endpoints.web.exposure.include=*
# 运行远程关闭应用
management.endpoint.shutdown.enabled=true
# 暴露部分可用的内置端点,端点 ID 用逗号隔开
# management.endpoints.web.exposure.include=info,health,beans,env
# 不暴露某个端点,端点 ID 用逗号隔开
# management.endpoints.web.exposure.exclude=info,health,beans,env
# 基础路径 /actuator/{Id}
# management.endpoints.web.base-path=/actuator
# 允许的 HTTP 请求方式
# management.endpoints.web.cors.allowed-methods=GET,POST
# 允许跨域
# management.endpoints.web.cors.allowed-origins=https://example.com
3、内置端点的使用
内置端点的使用比较简单,运行项目,访问 /actuator/{Id} 即可,例如要查看所有的 Spring Beans:
访问 :http://localhost:8080/actuator/beans ,可以看到如下样式的返回。
POST 方式访问 http://localhost:8080/actuator/shutdown ,应用将会关闭
{ "message": "Shutting down, bye..."
}
4、自定义端点
新建 MyEndpoint.java
@Configuration// Endpoint 指定端点 Id
@Endpoint(id = "my-endpoint")
public class MyEndpoint {
@ReadOperation
public Map<String, Object> endpoint() {
Map<String, Object> map = new HashMap<>(2);
// 将需要监控的信息写入 map 然后返回
map.put("status", "成功");
map.put("message", "这是自定义的端点");
return map;
}
}
如果 没有配置 management.endpoints.web.exposure.include=*,则通过如下方式启用自定义端点:
# 启用自定义端点,my-endpoint 添加如下配置中management.endpoints.web.exposure.include=my-endpoint
关于 Spring Boot 应用监控的功能到此结束,更多相关信息可以查阅参考和扩展阅读连接:
参考和扩展阅读:Spring Boot Actuator 官方文档和 API 说明
https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-features.html
https://docs.spring.io/spring-boot/docs/current/actuator-api/html/
以上是 SpringBoot2.X实战Actuator监控工具 的全部内容, 来源链接: utcz.com/z/519028.html