文章目录
- 2.环境搭建步骤
- 3.启动类设置
- 4.注册HystrixMetricsStreamServlet
- 5.启动服务
- 6.可视化监控
- 7.如何查看
### 1.概述
Hystrix提供了准实时的调用监控(Hystrix Dashboard
),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求多少成功,多少失败等。
Hystrix-dashboard 是一款针对 Hystrix 进行准实时监控的工具,通过 Hystrix Dashboard 我们可以在直观地看到各 Hystrix Command 的请求响应时间, 请求成功率等数据。
Netflix通过hystrix-metrics-event-stream
项目实现了对以上指标的监控。Spring Cloud也提供了Hystrix Dashboard
的整合,对监控内容转化成可视化界面。
2.环境搭建步骤
在前面几节中的消费者中添加pom依赖。 我们需要添加Hystrix,Actuator和Hystrix-dashboard的依赖,具体如下
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- hystrix和 hystrix-dashboard相关 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
3.启动类设置
添加@EnableHystrixDashboard 开启Dashboard,如下
@SpringBootApplication
@EnableDiscoveryClient // 开启EurekaClient功能
@EnableFeignClients // 开启Feign功能
@EnableCircuitBreaker//对hystrixR熔断机制的支持
@EnableHystrixDashboard //开启仪表盘
public class SpringcloudFeignProdcutConsumerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringcloudFeignProdcutConsumerApplication.class, args);
}
}
4.注册HystrixMetricsStreamServlet
在2.x之前的版本中,会自动注入该Servlet的,但是在2.x之后的版本,没有自动注册该Servlet。看源码的解释。
所以这里需要我们手动的注册该Servlet到容器中,代码如下:
/**
* 配置Hystrix.stream的servlet
* @return
*/
@Bean
public ServletRegistrationBean registrationBean() {
HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
registrationBean.setLoadOnStartup(1);
registrationBean.addUrlMappings("/hystrix.stream");
registrationBean.setName("HystrixMetricsStreamServlet");
return registrationBean;
}
访问http://localhost:80/hystrix
这里是你部署dashboard服务的地址和端口,会出现如下所示界面:
5.启动服务
启动consumer服务,访问服务
获取监控数据:http://localhost:80/hystrix.stream
6.可视化监控
上面案例获取的监控数据是纯json数据,可读性不强,我们可以单独创建一个服务来做可视化监控。
然后启动服务,访问此地址:
http://localhost:80/hystrix
点击"Monitor Stream"进入监控页面
7.如何查看
- 7色
- 1圈 实心圆:
共有两种含义。它通过颜色的变化代表了实例的健康程度,它的健康度从绿色<黄色<橙色<红色递减。
该实心圆除了颜色的变化之外,它的大小也会根据实例的请求流量发生变化,流量越大该实心圆就越大。
所以通过该实 心圆的展示,就可以在大量的实例中快速的发现故障实例和高压力实例。
- 1线
曲线:用来记录2分钟内流量的相对变化,可以通过它来观察到流量的上升和下降趋势。
面板每个指标所代表的意义: