在一个 Spring Boot 2.1.4 的旧工程里,Hystrix Dashboard 首页能打开,被监控接口也有 @HystrixCommand,但访问 /actuator/hystrix.stream 却出现 Whitelabel Error Page。

Dashboard 是展示入口,hystrix.stream 是被监控服务上的数据入口。前者可用,不代表后者已经注册、暴露并允许当前用户访问。

当时的配置与改动

Dashboard 应用使用了 @EnableHystrixDashboard;被监控应用加入 spring-boot-starter-actuator,并在相应调用上使用 Hystrix。

当时在被监控应用的 application.properties 中增加:

management.endpoints.web.exposure.include=hystrix.stream

重启后记录为恢复。注意配置应放在真正提供指标流的服务,不是只放在 Dashboard 所在应用。

端点存在与 Web 暴露不同

Spring Boot 2.1.4 区分端点是否启用,以及是否通过 HTTP 暴露;同时还可能有认证授权限制。Boot 2.1.4 端点说明

如果端点根本没有注册,exposure 配置不会凭空创建它;若被安全策略拒绝,也不能单靠开放端点解决。

include 还会影响已有暴露列表。项目若需保留 health 等其他端点,应按实际需求列出,而不是覆盖后忘记原来的监控。

从状态码与数据流继续检查

记录 HTTP 状态、响应内容和服务日志,核对 management 端口、基础路径与上下文路径。确认访问的是正确服务,再在受控环境触发实际被监控调用,检查是否产生指标。

不要为了省事配置暴露所有端点,也不要把指标流直接开放到公网。旧 Hystrix 栈的使用记录不等于新项目的选型建议;具体依赖和版本仍需配套核对。