微服务监控Spring Boot Actuator2.x.x 使用及配置
1、Actuator 简介
Actuator 是 Spring Boot 提供的对应用系统的自省和监控功能。通过 Actuator,可以使用数据化的指标去度量应用的运行情况,比如查看服务器的磁盘、内存、CPU等信息,系统的线程、gc、运行状态等等。
Actuator 通常通过使用 HTTP 和 JMX 来管理和监控应用,大多数情况使用 HTTP 的方式。
2、作用
主要是完成微服务的监控,完成监控治理。可以查看微服务间的数据处理和调用,当它们之间出现了异常,就可以快速定位到出现问题的地方。
3、依赖
<!--actuator完善监控信息的-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
4、1.5.x与2.x.x比较
旧的属性 | 新的属性 |
---|---|
endpoints…* | management.endpoint…* |
endpoints.cors.* | management.endpoints.web.cors.* |
endpoints.jmx.* | management.endpoints.jmx.* |
management.address | management.server.address |
management.context-path | management.server.servlet.context-path |
management.ssl.* | management.server.ssl.* |
management.port | management.server.port |
说明:
SpringBoot2.x已经去掉了management.security的配置
5、Actuator 端点说明
端点 | 描述 |
---|---|
auditevents | 获取当前应用暴露的审计事件信息 |
beans | 获取应用中所有的 Spring Beans 的完整关系列表 |
caches | 获取公开可以用的缓存 |
conditions | 获取自动配置条件信息,记录哪些自动配置条件通过和没通过的原因 |
configprops | 获取所有配置属性,包括默认配置,显示一个所有 @ConfigurationProperties 的整理列版本 |
env | 获取所有环境变量 |
flyway | 获取已应用的所有Flyway数据库迁移信息,需要一个或多个 Flyway Bean |
liquibase | 获取已应用的所有Liquibase数据库迁移。需要一个或多个 Liquibase Bean |
health | 获取应用程序健康指标(运行状况信息) |
httptrace | 获取HTTP跟踪信息(默认情况下,最近100个HTTP请求-响应交换)。需要 HttpTraceRepository Bean |
info | 获取应用程序信息 |
integrationgraph | 显示 Spring Integration 图。需要依赖 spring-integration-core |
loggers | 显示和修改应用程序中日志的配置 |
logfile | 返回日志文件的内容(如果已设置logging.file.name或logging.file.path属性) |
metrics | 获取系统度量指标信息 |
mappings | 显示所有@RequestMapping路径的整理列表 |
scheduledtasks | 显示应用程序中的计划任务 |
sessions | 允许从Spring Session支持的会话存储中检索和删除用户会话。需要使用Spring Session的基于Servlet的Web应用程序 |
shutdown | 关闭应用,要求endpoints.shutdown.enabled设置为true,默认为 false |
threaddump | 获取系统线程转储信息 |
heapdump | 返回hprof堆转储文件 |
jolokia | 通过HTTP公开JMX bean(当Jolokia在类路径上时,不适用于WebFlux)。需要依赖 jolokia-core |
prometheus | 以Prometheus服务器可以抓取的格式公开指标。需要依赖 micrometer-registry-prometheus |
6、endpoints接口信息
- 所有 endpoints 默认情况下都已移至"/actuator"。即多了根路径actuator
- 默认只有端点/health和/info端点是暴露的。
HTTP 方法 | 路径 | 描述 |
---|---|---|
GET | /actuator/configprops | 描述配置属性(包含默认值)如何注入Bean |
GET | /actuator/beans | 描述应用程序上下文里全部的Bean,以及它们的关系 |
GET | /actuator/dump | 获取线程活动的快照 |
GET | /actuator/env | 获取全部环境属性 |
GET | /actuator/env/{name} | 根据名称获取特定的环境属性值 |
GET | /actuator/health | 报告应用程序的健康指标,这些值由HealthIndicator的实现类提供 |
GET | /actuator/info | 获取应用程序的定制信息,这些信息由info打头的属性提供 |
GET | /actuator/mappings | 描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系 |
GET | /actuator/metrics | 报告各种应用程序度量信息,比如内存用量和HTTP请求计数 |
GET | /actuator/metrics/{name} | 报告指定名称的应用程序度量值 |
POST | /actuator/shutdown | 关闭应用程序,要求endpoints.shutdown.enabled设置为true |
GET | /actuator/httptrace | 提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)(之前为trace) |
7、参考文档
https://docs.spring.io/spring-boot/docs/2.2.1.RELEASE/reference/html/production-ready-features.html