1,基本介绍
Spring Actuator 是 Spring Boot 提供的一个扩展模块,用于监控和管理应用程序的生产环境。它通过 HTTP 端点暴露了大量的监控和管理功能,使得开发者可以在运行时查看应用程序的运行状况、配置信息、性能指标等。
主要功能:
-
健康检查:
/actuator/health
端点提供应用程序的健康状态。它可以告诉你应用程序是否正常运行,并且可以根据健康检查的结果进行适当的响应。
-
信息端点:
/actuator/info
端点提供应用程序的自定义信息。开发者可以在这里配置任意的信息,比如版本号、描述等。
-
环境信息:
/actuator/env
端点提供应用程序的环境属性信息。这包括配置属性、系统属性、环境变量等。
-
配置属性:
/actuator/configprops
端点展示应用程序当前的配置属性信息,包括各种配置源(如配置文件、环境变量、命令行参数等)。
-
日志管理:
/actuator/loggers
和/actuator/loggers/{logger}
端点允许动态地管理应用程序的日志级别。
-
HTTP 跟踪:
/actuator/httptrace
端点提供应用程序的最近 HTTP 请求跟踪信息,包括请求和响应的详细信息。
-
度量指标:
/actuator/metrics
端点展示应用程序的各种度量指标,比如 JVM 内存使用情况、线程池状态、HTTP 请求处理时间等。
-
审计日志:
/actuator/auditevents
端点提供应用程序的审计事件信息,包括用户登录、权限变更等重要操作的审计记录。
-
Beans 和映射信息:
/actuator/beans
和/actuator/mappings
端点展示 Spring 应用程序中所有的 Spring Beans 和 HTTP 请求的 URL 映射信息。
一般主要用到的就是其健康检查功能,在微服务架构中,我们服务会向注册中心表示自己当前的状态,大多数时候可能大家都会采用自己写个接口直接返回true来展示自己服务没有挂掉。
但这种方式不太好的一点就是,只能监控服务自身的状况。与其自身息息相关的数据库,redis,es等依赖的组件状态就无法保证。
Actuator则可以很轻松容易地掌控服务整体的状态。
2,使用介绍
pom引入依赖,版本根据自己springboot的进行选择。
<!--Spring Boot Actuator 监控-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>2.5.4</version>
</dependency>
开启配置(可以根据需要开启指定路径)
management.endpoints.web.exposure.include=* # 开启所有端点
当你不想暴露不必要的功能时
# 通过配置文件排除端点
management.endpoints.web.exposure.exclude=beans,info,mappings
修改端点访问路径
management.endpoints.web.base-path=/management
详细展示
management.endpoint.health.show-details=always
3,测试使用
访问健康检查接口
这里只显示了一个状态,UP。这个状态表示你这个服务及你服务所依赖的所有组件的状态都是ok的。
当有一个不ok时,就是down。
如果想看到更加详细的内容。
再次访问结果如下