除了隔离依赖服务的调用以外,Hystrix还提供了准实时的调用监控(Hystrix Dashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监控。

Spring Cloud也提供了Hystrix Dashboard的整合,对监控内容转化成可视化界面。

话不多说直接上操作:

新建一个监控用的model,pom文件:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>SpringCloud</artifactId>
<groupId>SpringCloud</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>

<artifactId>microservicecloud-consumer-hystrix-dashboard</artifactId>

<dependencies>
<!-- 自己定义的api -->
<dependency>
<groupId>SpringCloud</groupId>
<artifactId>microservicecloud-api</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 修改后立即生效,热部署 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!-- Ribbon相关 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!-- feign相关 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>

<!-- hystrix和 hystrix-dashboard相关-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>
</dependencies>
</project>

配置文件,给个端口号:

主启动类上加上

@EnableHystrixDashboard //用于HystrixDashboard监控

 

然后在所有的微服务提供者,也就是生产者中加上pom,因为这个监控是针对于被调用方而言的,用于监控被调用方服务的健康状态:

<!-- actuator监控信息完善 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

我们启动监控Model的启动类后访问:

​​http://ip地址:端口号/hystrix/​​ 就会出来下图界面:

SpringCloud之Hystrix断路器(三)服务监控hystrixDashboard_maven

嗯,实不相瞒这是一头豪猪,最上方的文本框是让你输入需要监控的地址,格式如下:

​​http://localhost:8001/hystrix.stream​​ 也就是ip地址加端口号/hystrix.stream

下方左边的输入框是指刷新信息的毫秒数,右边的是给监控的服务取个名字,我们就随便拿一个服务来测试一下,点击下方的按钮:

SpringCloud之Hystrix断路器(三)服务监控hystrixDashboard_hystrixdashboard_02

就会出现上图的页面,这就是监控页面,那么这个监控页面应该怎么样看呢:

主要是看我标记好的地方,可以看到有七个不同颜色的数字数字和一个圆点加一个横线,关于这些信息的解释可以看下图:

SpringCloud之Hystrix断路器(三)服务监控hystrixDashboard_maven_03

复杂的监控场景..访问量越大圆点就越大.

SpringCloud之Hystrix断路器(三)服务监控hystrixDashboard_spring_04