SpringCloud系列:12.微服务断路器监控系统Hystrix Dashboard
一、Hystrix Dashboard
前面的章节我们已经讲解过Hystrix的集成了,它可以帮我们实现服务的熔断,使得服务在异常状态下启用回退方法(fallbackMethod)。
Hystrix使用:https://blog.****.net/Simple_Yangger/article/details/87909896
而Hystrix Dashboard,它主要用来实时监控Hystrix的各项指标信息。通过Hystrix Dashboard仪表盘反馈实时信息,可以帮助我们快速发现系统中存在的问题。简而言之,Hystrix Dashboard为微服务Hystrix的指标提供实时监控的可视化界面。
二、示例演示
依旧使用之前的项目,由于前面的章节已经集成过了Hystrix,所以Hystrix的使用不再累赘,这里主要讲解Dashboard的使用。
这里为了快速开始,我们以已集成Hystrix的user-server为例,首先,要使用Dashboard,我们需要先引入spring-cloud-starter-netflix-hystrix-dashboard依赖,其次还需要spring-boot-starter-actuator依赖。
然后是核心启动,我们需要增加@EnableHystrixDashboard表明启用Hystrix Dashboard。
最后是配置文件,我们需要添加Dashboard的监控规则,这里添加全部。
然后我们依次启动服务eurake-server、config-server、user-server。之后我们访问单体应用的监控地址http://localhost:10820/actuator/hystrix.stream,然后你就会看到一个不停冒出ping:的界面,这说明我们的Dashboard已经部署成功。
但是这样冒ping有什么用呢?这是因为我们还没有任何请求调用,所以我们打开swagger-ui,进行一些请求调用,于是界面就会出现一些data的json数据。
这些数据就是Hystrix的各项指标信息,密密麻麻,这样查看显然很不友好,所以我们需要更加友好点的可视化界面,输入http://localhost:10820/hystrix,可以看到Hystrix Dashboard有点略萌的主界面。
这个界面主要是需要我们配置Hystrix监控数据流的地址,即我们前面打开的http://localhost:10820/actuator/hystrix.stream,然后填写延迟时间和标题,点击Monitor Stream按钮。
进去后我们可以发现一个略微好看点的界面,但是界面的数据均为0,这是因为Dashboard是实时监控的,所以我们需要去调用服务的请求,然后界面会出现一切变化。
界面主要展示了最近10成功失败请求的次数及比例,还有请求频率、短路状态、延迟等数据。这里我调用了findByIds请求且book-server未启动,所以服务间通信均失败,界面也可以看到失败率为100%。
实心圆表示健康程度,健康程度依次从绿色、黄色、橙色、红色递减,并且通过大小表示请求流量发生变化,流量越大该实心圆就越大。所以可以在大量的实例中快速发现故障实例和高压实例。
其中曲线用来记录2分钟内流量的相对变化,可以通过它来观察流量的上升和下降趋势。
源码地址: https://github.com/imyanger/springcloud-project/tree/master/p10-hystrix-dashboard