Hystrix Dashboard 是 Hystrix 提供的一个可以查看 Hystrix 监控数据的控制面板 . Hystrix提供了近实时的数据监控 , Hystrix 会实时、累加的记录所有关于 HystrixCommand 的执行信息 , 包括每秒执行多少请求 , 多少成功和多少失败等.

创建 Hystrix Dashboard 工程

依赖 pom.xml

1
2
3
4
5
6
7
8
9
10
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

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

application.yml

1
2
3
4
5
6
7
8
9
10
server:
port: 13000
spring:
application:
name: dashboard
cloud:
consul:
discovery:
service-name: ${spring.application.name}

启动类增加注解

1
2
3
4
5
6
7
8
9
10
@SpringBootApplication
@EnableDiscoveryClient
@EnableHystrixDashboard
public class HystrixDashboardApplication {

public static void main(String[] args) {
SpringApplication.run(HystrixDashboardApplication.class, args);
}

}

@EnableHystrixDashboard:启动Hystrix Dashboard断路器看板相关配置

启动应用 , 打开浏览器 http://localhost:13000/hystrix

以上便配置好了 Dashboard . 通过主页的文字 , 我们可以知道 Hystrix Dashboard 支持三种不同的监控方式 .

  • 默认的集群监控. 通过 http://turbine-hostname:port/turbine.stream 开启 , 实现对默认集群的监控
  • 指定的集群监控. 通过 http://turbine-hostname:port/turbine.stream?cluster=[clusterName] 开启 , 实现对 clusterName 集群的监控
  • 单体应用的监控 . 实现对具体某个服务实例的监控 . 通过 http://hystrix-app:port/actuator/hystrix.stream Actuator 2.x 以后 endpoints 全部在 /actuator 下 ,可以通过 management.endpoints.web.base-path 修改

被监控服务配置

pom.xml

1
2
3
4
5
6
7
8
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

为启动类添加 @EnableCircuitBreaker@EnableHystrix 注解 , 开启断路器功能

配置文件 application.yml 中添加

1
2
3
4
5
6
management:
endpoints:
web:
exposure:
include: hystrix.stream

management.endpoints.web.exposure.include 这个事用来暴露 endpoints 的 . 由于 endpoints 中会包含很多敏感信息 , 除了 health 和 info 两个支持 web 访问外 , 其他的默认不支持 web 访问 . 详情请参考 50.Endpoints

使用

在 Dashboard 主界面输入对应的地址 , 然后点击 Monitor Stream 按钮进入页面 . 然后请求对应服务 , 会出现以下界面

如果在该界面出现报错 Unable to connect to Command Metric Stream. , 可以参考这个 Issue

界面解读

以上图来说明其中各元素的具体含义:

  • 实心圆:它有颜色和大小之分 , 分别代表实例的监控程度和流量大小 . 如上图所示 , 它的健康度从绿色、黄色、橙色、红色递减 . 通过该实心圆的展示 , 我们就可以在大量的实例中快速的发现故障实例和高压力实例 .
  • 曲线:用来记录 2 分钟内流量的相对变化 , 我们可以通过它来观察到流量的上升和下降趋势 .
  • 其他一些数量指标如下图所示

参考链接