Hystrix Dashboard:顾名思义就是熔断器仪表盘,可以使用可视化界面对服务进行监控
注意:网上的资料教程大多是SpringCloud和SpringBoot低版本的,我在使用最新版本的时候,遇到了一些坑,也就是版本不同导致的
使用的版本:
spring-cloud-starter-netflix-hystrix-dashboard : 2.1.0.RELEASE
SpringCloud版本:Greenwich.RELEASE
SpringBoot版本:2.1.4.RELEASE
步骤
-
新建一个模块,用于Hystrix Dashboard进行图形可视化监控,引入依赖
<!-- hystrix dashboard --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId> </dependency> <dependencyManagement> <dependencies> <!-- <scope>import</scope>解决单继承问题,类似parent标签, --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Greenwich.RELEASE</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
-
在该模块的主启动类上加上
@EnableHystrixDashboard
注解,表示开启Hystrix Dashboard -
到这里可以启动该模块,然后在浏览器输入
localhost:8080/hystrix
,看到下面界面表示成功
简单介绍一下:
第1个地方填写需要监控的地址
(单体应用监控:http://域名:端口/actuator/hystrix.stream
),还有集群应用监控,下面的黑色文字就是对应的地址形式,可参考
第2个地方表示:轮询监控的延迟时间,默认2000ms
第3个地方表示,为此次监控取一个标题
第4个地方表示,开启监控,执行 -
继续,在需要监控的微服务中引入监控
actuator
依赖(默认该服务已经使用了Hystrix熔断或者降级,即引入了Hystrix相关依赖)
具体项目可以参考:SpringCloud学习(六)Feign中使用Hystrix进行服务熔断 -
在需要监控的微服务中注册一个Servlet,用于访问actuator的
hystrix.stream
端点(这也是新版本跟之前版本的不同,不然后面会一直出现Unable to connect to Command Metric Stream.
错误)@Bean public ServletRegistrationBean getServlet() { HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet(); ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet); registrationBean.setLoadOnStartup(1); registrationBean.addUrlMappings("/actuator/hystrix.stream"); registrationBean.setName("HystrixMetricsStreamServlet"); return registrationBean; }
-
启动项目测试,依次启动Eureka注册中心,服务提供者,服务消费者(也是此次的被监控者),和Hystrix Dashboard监控模块
-
在第3步的那个图中填上相应的参数,地址,延迟时间等,点击Monitor Stream
-
如果跳转的界面显示Loading…则表示成功
若是Unable to connect to Command Metric Stream
则失败(重新检查前面的步骤吧) -
这时疯狂给消费者(此次的被监控者)发送请求,第8步的图形界面会出现类似这样的
在监控的界面有两个重要的图形信息:一个实心圆和一条曲线。
-
实心圆:
1、通过颜色的变化代表了实例的健康程度,健康程度从绿色、黄色、橙色、红色递减。
2、通过大小表示请求流量发生变化,流量越大该实心圆就越大。所以可以在大量的实例中快速发现故障实例和高压实例。 -
曲线:用来记录2分钟内流浪的相对变化,可以通过它来观察流量的上升和下降趋势。
另外不同颜色数字表示:
第1列数字表示:成功的请求,熔断数,错误的请求;
第2列表示:超时的请求,线程池拒绝数,失败的请求
第3列表示:最近10秒内错误的比率
如下图: