SpringCloud之Hystrix断路器(三)服务监控hystrixDashboard
原创
©著作权归作者所有:来自51CTO博客作者Emiyas的原创作品,请联系作者获取转载授权,否则将追究法律责任
除了隔离依赖服务的调用以外,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/ 就会出来下图界面:
嗯,实不相瞒这是一头豪猪,最上方的文本框是让你输入需要监控的地址,格式如下:
http://localhost:8001/hystrix.stream 也就是ip地址加端口号/hystrix.stream
下方左边的输入框是指刷新信息的毫秒数,右边的是给监控的服务取个名字,我们就随便拿一个服务来测试一下,点击下方的按钮:
就会出现上图的页面,这就是监控页面,那么这个监控页面应该怎么样看呢:
主要是看我标记好的地方,可以看到有七个不同颜色的数字数字和一个圆点加一个横线,关于这些信息的解释可以看下图:
复杂的监控场景..访问量越大圆点就越大.