Hystrix Dashboard,它主要用来实时监控Hystrix的各项指标信息。通过Hystrix Dashboard反馈的实时信息,可以帮助我们快速发现系统中存在的问题。Hystrix Dashboard是作为断路器状态的一个组件,提供了数据监控和友好的图形化界面。

首先在eureka-user添加maven依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>

启动类上加@EnableHystrixDashboard @EnableCircuitBreaker这两个注解

application.yml中暴漏端口

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

启动eureka-user,访问http://localhost:8082/hystrix

springcloud 监控接口 springcloud监控组件_springcloud 监控接口

 

通过Hystrix Dashboard主页面的文字介绍,我们可以知道,Hystrix Dashboard共支持三种不同的监控方式

默认的集群监控:通过URL:http://turbine-hostname:port/turbine.stream开启,实现对默认集群的监控。

指定的集群监控:通过URL:http://turbine-hostname:port/turbine.stream?cluster=[clusterName]开启,实现对clusterName集群的监控。

单体应用的监控:通过URL:http://hystrix-app:port/hystrix.stream开启,实现对具体某个服务实例的监控。

Delay:控制服务器上轮询监控信息的延迟时间,默认为2000毫秒,可以通过配置该属性来降低客户端的网络和CPU消耗。

Title:该参数可以展示合适的标题。

访问一个带断路器的接口http://localhost:8082/getConfig,然后访问http://localhost:8082/actuator/hystrix.stream即可看到

springcloud 监控接口 springcloud监控组件_断路器_02

将http://localhost:8082/actuator/hystrix.stream放到http://localhost:8082/hystrix的输入框中以实现可视化,

springcloud 监控接口 springcloud监控组件_断路器_03

在监控的界面有两个重要的图形信息:一个实心圆和一条曲线。

  ▪实心圆:1、通过颜色的变化代表了实例的健康程度,健康程度从绿色、黄色、橙色、红色递减。2、通过大小表示请求流量发生变化,流量越大该实心圆就越大。所以可以在大量的实例中快速发现故障实例和高压实例。

  ▪曲线:用来记录2分钟内流浪的相对变化,可以通过它来观察流量的上升和下降趋势。

仪表盘介绍

1. 七色

springcloud 监控接口 springcloud监控组件_断路器_04

 

2. 一圈

  1. 通过颜色来代表实例的健康程度, 绿色<黄色<橙色<红色
  2. 该实心圆除了颜色变化外,大小也会变化,流量越大该实心圆越大。

springcloud 监控接口 springcloud监控组件_集群监控_05

 

3.整图说明

springcloud 监控接口 springcloud监控组件_断路器_06

注意:当使用Hystrix Board来监控Spring Cloud Zuul构建的API网关时,Thread Pool信息会一直处于Loading状态。这是由于Zuul默认会使用信号量来实现隔离,只有通过Hystrix配置把隔离机制改成为线程池的方式才能够得以展示。

 

源码下载:https://github.com/cxsummer/springcloud