Spring Boot Actuator 2022-01-08 程序之旅 暂无评论 571 次阅读 ## Spring Boot Actuator Spring Boot 监控,可以帮助应用程序生产环境下监控和管理应用程序。Spring Boot 监控信息包括:应用状态、内存、线程、堆栈等等,对微服务管理有很大的意义。 Actuator 监控分成两类:原生端点和用户自定义端点,自定义端点可以分三类: - 应用配置类:可以查看应用在运行期的静态信息。 - 度量指标类:主要运行期的动态信息,例如堆、栈等 - 操作控制类:主要是指 shutdown。 ### 主要的接口 | HTTP方法 | 路劲 | 描述 | | -------- | --------------- | ------------------------------------------------------------ | | GET | /autoconfig | 该端点用来获取应用的自动化配置报告,其中包括所有自动化配置的候选项。 | | GET | /configprops | 描述配置属性(包含默认值)如何注入Bean | | GET | /beans | 描述应用程序上下文里全部的Bean,以及它们的关系 | | GET | /env | 获取全部环境属性 | | GET | /env/{name} | 根据名称获取特定的环境属性值 | | GET | /info | 获取应用程序的定制信息,这些信息由info打头的属性提供 | | GET | /mappings | 描述全部的 URI路径,以及它们和控制器(包含Actuator端点)的映射关系 | | GET | /metrics | 点)的映射关系报告各种应用程序度量信息,比如内存用量和HTTP请求计数 | | GET | /metrics/{name} | 报告指定名称的应用程序度量值 | | GET | /health | 报告应用程序的健康指标,这些值由 HealthIndicator 的实现类提供 | | GET | /heapdump | dump 一份应用的 JVM 堆信息 | | GET | /trace | 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等) | | POST | /shutdown | 关闭应用程序,要求endpoints.shutdown.enabled设置为 true | ### 实践 Actuator Spring Boot Actuator 接口返回的是 Json 格式内容,为了更好展示监控的内容,这里推荐使用一个方便的管理工具:Spring Boot Admin。Spring Boot Admin 作为一个监控服务端对连接 Spring Boot 客户端进行可视化监控展示。首先我们需要先搭建服务端。 #### Server 端 使用 Idea 进行项目创建。 ![image-20220108093736558](https://mufeng-blog.oss-cn-beijing.aliyuncs.com/typecho/20220108093739.png) pom.xml 配置 ```xml org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-starter-web de.codecentric spring-boot-admin-starter-server org.springframework.boot spring-boot-starter-test test ``` application.yml 配置文件 ```yaml server: port: 8081 ``` 在启动类中开启 admin 功能 ```java @SpringBootApplication @EnableAdminServer public class SpringbootServerApplication { public static void main(String[] args) { SpringApplication.run(SpringbootServerApplication.class, args); } } ``` 简单配置完成后启动 ![image-20220108094354064](https://mufeng-blog.oss-cn-beijing.aliyuncs.com/typecho/20220108094355.png) #### Client 端 同样的步骤创建一个 Client 端。pom.xml 配置 ```xml org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-starter-web de.codecentric spring-boot-admin-starter-client org.springframework.boot spring-boot-starter-test test ``` application.yml 配置文件 ```yaml server: port: 8082 # 自定义配置信息用于 "/actuator/info" 读取 info: name: 幕峰 phone: 17777777777 # 通过下面的配置启用所有的监控端点,默认情况下,这些端点都是禁用 management: endpoints: web: exposure: include: "*" endpoint: health: show-details: always # 将 client 作为服务注册到 server,通过 server 来监听项目的运行情况 spring: boot: admin: client: url: http://localhost:8081 application: name: spring-boot-admin-client-a ``` 启动客户端后 ![image-20220108110733110](https://mufeng-blog.oss-cn-beijing.aliyuncs.com/typecho/20220108110735.png) 打赏: 微信, 支付宝 标签: spring boot, Spring Boot Actuator 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。