Hystrix Dashboard 是一个可视化工具,用于实时监控 Hystrix 命令的执行情况和系统的健康状况。它以直观的界面展示了各种监控指标和熔断器的状态,帮助开发人员和运维人员快速定位问题和优化系统性能。
能够实时显示 Hystrix 命令的各项指标,包括请求量、成功数、失败数、超时数、熔断器状态等,让用户一目了然地了解系统的运行情况。
可以监控多个服务实例组成的集群,汇总和展示整个集群的监控数据,方便对大规模分布式系统进行管理和监控。
通过简洁直观的界面设计,以图表、仪表盘等形式展示监控数据,使监控信息更加易于理解和分析。
支持动态修改 Hystrix 的一些配置参数,如熔断器的阈值、线程池大小等,无需重启服务即可生效,方便进行性能调优和故障排除。
以下是开启 Hystrix 和 Hystrix Dashboard 的详细步骤:
如果使用 Maven 构建项目,需要在项目的 pom.xml 文件中添加 Hystrix 的依赖项,请参考“Netflix Hystrix 入门实例”。
然后在 Spring Boot 项目的主类上添加 @EnableHystrix 注解,开启 Hystrix 的功能。
参考前面示例,为某个接口开启熔断功能,后续会使用到。
如果使用 Maven 构建项目,需要在 pom.xml 文件中添加 Hystrix Dashboard 的依赖项。如下:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
然后,在 Spring Boot 项目的主类上添加 @EnableHystrixDashboard 注解,开启 Hystrix Dashboard 的功能。如下:
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard; @SpringBootApplication @EnableHystrixDashboard // 看这里 public class YourApplication { public static void main(String[] args) { SpringApplication.run(YourApplication.class, args); } }
Spring Boot Actuator 提供了一系列用于监控和管理应用程序的内置端点,比如 /health 用于查看应用健康状态、/info 用于展示应用的基本信息等。而 hystrix.stream 端点则是与 Hystrix 相关的,用于向外提供 Hystrix 命令执行过程中的各类监控数据,像请求的成功率、失败率、熔断器状态等。
在 application.yml 配置文件中添加如下配置信息,开启 hystrix.stream Actuator 端点:
management: endpoints: web: exposure: # 指定哪些 Actuator 端点可以通过 Web 进行暴露 # 默认情况下,只有 info、health 和 beans 端点可以通过 Web 进行暴露 include: hystrix.stream
在 Hystrix 的配置中,hystrix.dashboard.proxy-stream-allow-list 属性用于指定允许 Hystrix Dashboard 代理访问的流的列表。它起到了一种安全控制的作用,限制了哪些流可以被 Hystrix Dashboard 所监控和获取数据。
当配置为 * 时,表示允许 Hystrix Dashboard 代理访问所有的流。这意味着 Hystrix Dashboard 将能够监控和获取系统中所有被 Hystrix 管理的服务所产生的监控数据,包括各种命令执行的信息、熔断器状态变化、线程池状态等。这样的配置在开发和测试环境中可能比较方便,因为可以全面地查看系统的运行状况和性能指标,有助于快速定位问题和进行性能优化(不建议在生产环境使用)。
在 application.yml 配置文件中添加如下配置信息,允许 Hystrix Dashboard 代理访问所有的流,如下:
hystrix: dashboard: # 表示允许 Hystrix Dashboard 代理访问所有的流(streams) proxy-stream-allow-list: "*"
到这里所有工作就完成了,重启服务,接下来开始验证。
第一步:使用浏览器访问 http://host:port/hystrix 地址,如下图:
如果不出意外,你能看见上述页面,表示 Hystrix Dashboard 安装成功。
第二步:使用浏览器访问任意一个已开启了熔断功能的接口。
第三步:使用浏览器访问 http://host:port/actuator/hystrix.stream 地址,此时你能看见一些监控数据,如下图:
第四步:在第一步所示的界面的最上面的输入框中输入 http://host:port/actuator/hystrix.stream 地址,然后点击“Monitor Stream”按钮,开始监听,如下图:
监控页面说明:
还可以根据右上角的图例颜色进行是被,如下图:
其中,绿色表示请求成功数。