Hystrix Dashboard 让你更了解系统的运行情况

简介: 断路器的打开和关闭状态的变化是由系统收集一些重要参数,当达到条件时才触发的。而这些请求情况的指标信息都是 HystrixCommand和 HystrixObservableCommand实例在执行过程中记录的重要信息,为了帮助我们系统运维或性能优化做出判断, HystrixDashboard实现Hystrix指标数据的可视化。接口实现使用了 @HystrixCommand注解后,这个接口的调用情况会被Hystrix记录下来,并用来给断路器和 HystrixDashboard使用。Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboa

Hystrix Dashboard


断路器的打开和关闭状态的变化是由系统收集一些重要参数,当达到条件时才触发的。而这些请求情况的指标信息都是 HystrixCommandHystrixObservableCommand实例在执行过程中记录的重要信息,为了帮助我们系统运维或性能优化做出判断, HystrixDashboard实现Hystrix指标数据的可视化。

接口实现使用了 @HystrixCommand注解后,这个接口的调用情况会被Hystrix记录下来,并用来给断路器和 HystrixDashboard使用。

Hystrix-dashboard是一款针对Hystrix进行实时监控的工具,通过Hystrix Dashboard我们可以在直观地看到各Hystrix Command的请求响应时间, 请求成功率等数据。

体验一下


  • 创建一个标准的Spring Boot工程,命名为:hystrix-dashboard。
  • pom.xml添加依赖:
1. <dependencies>
2.     <dependency>
3.         <groupId>org.springframework.cloud</groupId>
4.         <artifactId>spring-cloud-starter-hystrix</artifactId>
5.     </dependency>
6.     <dependency>
7.         <groupId>org.springframework.cloud</groupId>
8.         <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
9.     </dependency>
10.     <dependency>
11.         <groupId>org.springframework.boot</groupId>
12.         <artifactId>spring-boot-starter-actuator</artifactId>
13.     </dependency>
14. </dependencies>
15. 
16. <dependencyManagement>
17.     <dependencies>
18.         <dependency>
19.             <groupId>org.springframework.cloud</groupId>
20.             <artifactId>spring-cloud-dependencies</artifactId>
21.             <version>Dalston.SR1</version>
22.             <type>pom</type>
23.             <scope>import</scope>
24.         </dependency>
25.     </dependencies>
26. </dependencyManagement>
• 为主类加上@EnableHystrixDashboard,启用Hystrix Dashboard功能。
27. @EnableHystrixDashboard
28. @SpringCloudApplication
29. @EnableCircuitBreaker
30. public class App {
31.     public static void main(String[] args) {
32.         SpringApplication.run(App.class, args);
33.     }
34. }
• 修改application.properties配置文件:
35. spring.application.name=hystrix-dashboard
36. server.port=9908
• 运行程序,进行访问 http://localhost:1301/hystrix

说明

这是Hystrix Dashboard的监控首页,该页面中并没有具体的监控信息。从页面的文字内容中我们可以知道,Hystrix Dashboard共支持三种不同的监控方式,依次为:

  1. 默认的集群监控:通过URLhttp://turbine-hostname:port/turbine.stream开启,实现对默认集群的监控。
  2. 指定的集群监控:通过URLhttp://turbine-hostname:port/turbine.stream?cluster=[clusterName]开启,实现对clusterName集群的监控。
  3. 单体应用的监控:通过URLhttp://hystrix-app:port/hystrix.stream开启,实现对具体某个服务实例的监控。

在首页中两个参数:

  1. Delay:该参数用来控制服务器上轮询监控信息的延迟时间,默认为2000毫秒,我们可以通过配置该属性来降低客户端的网络和CPU消耗。
  2. Title:该参数对应了上图头部标题Hystrix Stream之后的内容,默认会使用具体监控实例的URL,我们可以通过配置该信息来展示更合适的标题。
  • 在使用了 @HystrixCommand注解的服务实例pom.xml中的dependencies节点中新增spring-boot-starter-actuator监控模块以开启监控相关的端点,并确保已经引入断路器的依赖spring-cloud-starter-hystrix
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  • 确保在服务实例的主类中已经使用@EnableCircuitBreaker或@EnableHystrix注解,开启了断路器功能。
  • 完成了所有的配置,依次启动服务注册中心、服务提供者、服务消费者(eureka-service-consumer-hystrix)
  • 最后,在Hystrix Dashboard的首页输入http://localhost:9903/hystrix.stream,已启动对“eureka-service-consumer-hystrix”的监控,点击“Monitor Stream”按钮,此时我们可以看到如下页面:

在监控信息的左上部分找到两个重要的图形信息:一个实心圆和一条曲线。

实心圆:共有两种含义。它通过颜色的变化代表了实例的健康程度,如下图所示,它的健康度从绿色、黄色、橙色、红色递减。该实心圆除了颜色的变化之外,它的大小也会根据实例的请求流量发生变化,流量越大该实心圆就越大。所以通过该实心圆的展示,我们就可以在大量的实例中快速的发现故障实例和高压力实例。

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

相关文章
|
监控 Java Spring
Hystrix Dashboard使用及面板参数详述
Hystrix Dashboard使用及面板参数详述
387 0
Hystrix Dashboard使用及面板参数详述
|
6月前
|
监控 Java API
Spring cloud Hystrix 、Dashboard、API(zuul)相关报错
Spring cloud Hystrix 、Dashboard、API(zuul)相关报错
61 2
|
3月前
hystrix.stream dashboard
hystrix.stream dashboard
33 3
|
Java Maven
从零学SpringCloud系列(五):SpringBoot2.2.5集成Hystrix Dashboard及遇到的坑
从零学SpringCloud系列(五):SpringBoot2.2.5集成Hystrix Dashboard及遇到的坑
211 0
从零学SpringCloud系列(五):SpringBoot2.2.5集成Hystrix Dashboard及遇到的坑
|
监控 Java 微服务
16SpringCloud - 断路器项目示例(Hystrix Dashboard)
16SpringCloud - 断路器项目示例(Hystrix Dashboard)
52 0
|
监控 数据可视化 Java
手把手教你搭建SpringCloud项目(十二 )集成Hystrix之图形化Dashboard实时监控
手把手教你搭建SpringCloud项目(十二 )集成Hystrix之图形化Dashboard实时监控
160 1
|
监控 Java 微服务
SpringCloud极简入门-服务监控-Hystrix Dashboard & Turbine
Hystrix是一种服务熔断机制,其熔断降级策略有效的防止了微服务的雪崩问题,Hystrix的出现提高了微服务的可用性和健壮性,而Hystrix Dashboard则是用来监控Hystrix的熔断器状况的重要组件(又叫仪表盘),它提供了数据监控,健康状态,熔断状态,并发数量等等信息,和友好的图形化展示界面,能让使用者很好的监控和分析熔断器的状态。
360 0
|
监控 数据可视化 Java
Spring Cloud【Finchley】-12使用Hystrix Dashboard实现Hystrix数据的可视化监控
Spring Cloud【Finchley】-12使用Hystrix Dashboard实现Hystrix数据的可视化监控
152 0
|
监控 数据可视化 Java
SpringCloud学习(十五):Hystrix图形化Dashboard搭建与实战
SpringCloud学习(十五):Hystrix图形化Dashboard搭建与实战
186 0
SpringCloud学习(十五):Hystrix图形化Dashboard搭建与实战
|
缓存 运维 监控
SpringCloud-Hystrix——让你的系统稳一点儿
在微服务架构中,我们将系统拆分成了一个个的服务单元,各单元应用间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依赖通过远程调用的方式执行,这样就有可能因为网络原因或是依赖服务自身问题出现调用故障或延迟,而这些问题会直接导致调用方的对外服务也出现延迟,若此时调用方的请求不断增加,最后就会出现因等待出现故障的依赖方响应而形成任务积压,线程资源无法释放,最终导致自身服务的瘫痪,进一步甚至出现故障的蔓延最终导致整个系统的瘫痪,导致服务雪崩效应。为了解决这样的问题,产生了断路器等一系列的服务保护机制。