在 Hystrix Dashboard 中,使用了 /actuator/hystrix.stream,查看正在运行的项目的运行状态。 其中 /actuator
代表 SpringBoot 中的 Actuator 模块。该模版提供了很多生产级别的特性,如:监控、度量应用。Actuator 的特性可以通过众多的 REST 端点,远程 shell、JMX 获得。
源码:https://gitee.com/laiyy0728/spring-cloud/tree/master/spring-boot-actuator
常见 Actuator 端点
路径省略前缀:/actuator
路径 | HTTP 动作 | 描述 |
---|---|---|
/conditions | GET | 提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过 |
/configprops | GET | 描述配置属性(包含默认值)如何注入 Bean |
/caches | GET | 获取所有的 Cachemanager |
/caches/{cache} | DELETE | 移除某个 CacheManager |
/beans | GET | 描述应用程序上下文全部 bean,以及他们的关系 |
/threaddump | GET | 获取线程活动快照 |
/env | GET | 获取全部环境属性 |
/env/{toMatch} | GET | 获取指定名称的特定环境的属性值 |
/health | GET | 报告应用长须的健康指标,由 HealthIndicator 的实现提供 |
/httptrace | GET | 提供基本的 HTTP 请求跟踪信息(时间戳、HTTP 头等) |
/info | GET | 获取应用程序定制信息,由 Info 开头的属性提供 |
/loggers | GET | 获取 bean 的日志级别 |
/loggers/{name} | GET | 获取某个 包、类 路径端点的日志级别 |
/loggers/{name} | POST | 新增某个 包、类 路径端点的日志级别 |
/mappings | GET | 描述全部的 URL 路径,以及它们和控制器(包含Actuator端点)的映射关系 |
/metrics | GET | 报告各种应用程序度量信息,如:内存用量、HTTP 请求计数 |
/metrics/{name} | GET | 根据名称获取度量信息 |
/shutdown | POST | 关闭应用,要求 endpoints.shutdown.enabled 为 true |
/scheduledtasks | GET | 获取所有定时任务信息 |
SpringCloud 中,默认开启了 /actuator/health
、/actuator/info
端点,其他端点都屏蔽掉了。如果需要开启,自定义开启 endpoints 即可
1 | management: |
如果要开启全部端点,设置 exclude: *
即可
配置明细端点
引入pom文件,设置 yml
1 | <dependencies> |
1 | management: |
beans 端点
使用 /actuator/beans 端点,获取 JSON 格式的 bean 装配信息。访问: http://localhost:8080/actuator/beans
1 | { |
conditions 端点
/beans 端点可以看到当前 Spring 上下文有哪些 bean, /conditions 端点可以看到为什么有这个 bean
SpringBoot 自动配置构建与 Spring 的条件化配置之上,提供了众多的 @Conditional
注解的配置类,根据 @Conditional
条件决定是否自动装配这些 bean。
/conditions 端点提供了一个报告,列出了所有条件,根据条件是否通过进行分组
访问 http://localhost:8080/actuator/conditions
1 | { |
可以看到,在 negativeMatches
的 RabbitHealthIndicatorAutoConfiguration
自动状态,没有匹配到 org.springframework.amqp.rabbit.core.RabbitTemplate
类,所有没有自动装配。
env 端点
1 | { |
mappings 端点
mappings 端点可以生成一份 控制器到端点
的映射,即 访问路径与控制器 的映射
1 | { |