Hystrix Dashboard
在上一节中我们对Hystrix实现服务熔断和降级进行了原理分析,在其解释中提到了Hystrix命令执行会根据其健康指标来决定是否熔断,这些健康指标除了可以让Hystrix自己决定熔断外,我们也能够实时地查看,这对于系统的运维也非常有帮助。那么我们怎样才能查看Hystrix的健康指标呢?其实Hystrix通过访问配置的URL地址就可以看到监控信息,但是这样看到的监控信息难以分析,如图所示。
Hystrix提供了Dashboard(仪表盘)以图表的形式让我们能更加清晰地查看服务的健康指标信息。Dashboard的使用步骤如下: ① 创建一个名为“hystrix-dashboard”的Spring Boot项目,不需要指定为Eureka Client。
然后在pom.xml文件中添加spring-cloud-starter-netflix-hystrix-dashboard依赖,如程序清单13-13所示。
② 在启动类上添加@EnableHystrixDashboard注解开启Dashboard,如程序清单13-14所示。
并在application.yml中配置开放访问权限,如程序清单13-15所示。
③ 因为Hystrix是通过监控服务调用监控信息的,并且需要访问被监控服务的“/hystrix.stream”接口,而这个接口也是Actuator监控的一个端点,所以需要在服务调用者的pom.xml文件中添加Actuator依赖,并开放监控的端点信息,如程序清单13-16和程序清单13-17所示。
④ 分别启动Eureka注册中心、goods服务、hystrix服务(调用了goods服务)以及hystrix-dashboard服务,然后在浏览器中访问“http://localhost:7020/hystrix”,可以看到Hystrix Dashboard入口,如图所示。
上图中不是监控信息,是我们进入监控信息的入口,需要我们指定监控的服务才可以看到服务调用的监控信息。
调用的格式页面中已给出,第一个文本框中是需要监控的服务或者集群的地址,这里暂时不需要监控集群,所以我们输入监控的服务地址即可,即输入“http://localhost:7010/actuator/hystrix.stream”;
“Delay”文本框中是轮询调用服务监控信息的延迟时间,默认是2000ms(2s);
“Title”文本框中是监控页面的标题,这里我们输入“hystrix服务调用商品服务”,然后单击“Monitor Stream”就可以进入Hystrix Dashboard页面,如图所示。
从上图中可以看到一些信息指标,例如,显示的指标有实心圆(表示健康状态)、曲线(表示流量走势)等,下面我们来介绍一下。
实心圆 实心圆表示健康状态的指标。实心圆的颜色的变化代表调用的服务实例的健康程度,它的颜色有绿色、黄色、橙色、红色等,健康程度依次递减。
而实心圆的大小与实例请求的流量有关,流量越大实心圆越大,所以通过实心圆我们也可以判断实例是否健康、是否处于高压状态下。
曲线 曲线用来观察服务调用的流量变化,我们可以通过曲线的高低变化来查看哪个时间段服务调用比较频繁、服务调用压力比较大而容易出现故障等。
颜色数字 不同颜色的数字表示调用服务实例的结果,如图13-10所示,依次为,绿色表示成功,蓝色表示熔断,浅绿色表示错误请求,黄色表示超时,紫色表示拒绝访问,红色表示失败,黑色表示错误。
程池状态 通过线程池状态指标我们可以看到当前活跃的线程数、某个主机或者集群的请求频率、线程池大小等数据信息。