一、服务监控 hystrixDashboard
除了隔离依赖服务的调用以外,Hystrix还提供了准实时的调用监控(Hystrix Dashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求,多少成功,多少失败等等。
Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监控,SpringCloud也提供了Hystrix-Dashboard的整合,对监控内容转化成可视化界面!
二、新建工程springcloud-consumer-hystrix-dashboard-9001
1、Pom.xml
复制之前80项目的pom文件,新增以下依赖!
<!--hystrix-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
<!--hystrix监控依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
<version>1.4.7.RELEASE</version>
</dependency>
2、application.yml
配置端口号和流映射:
server:
port: 9001
hystrix:
dashboard:
proxy-stream-allow-list: "localhost"
3、主启动类DeptConsumerDashboard_9001
添加注解 @EnableHystrixDashboard
,开启监控页面:
@SpringBootApplication
@EnableHystrixDashboard //开启监控(保证服务提供者要有监控信息的依赖,即actuator)
public class DeptConsumerDashboard_9001 {
public static void main(String[] args) {
SpringApplication.run(DeptConsumerDashboard_9001.class, args);
}
}
4、所有的Provider微服务提供类(8001/8002/8003) 都需要监控依赖配置
<!--完善监控信息,即Status那个页面的信息-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
5、启动springcloud-consumer-hystrix-dashboard-9001该微服务监控消费端
三、测试一
- 启动eureka集群
- 启动springcloud-consumer-hystrix-dashboard-9001
- 在 springcloud-provider-dept-hystrix-8001 启动类中增加一个bean
//增加一个Servlet,用来配合Hystrix Dashboard监控该服务
@Bean
public ServletRegistrationBean hystrixMetricsStreamServlet(){
ServletRegistrationBean registrationBean = new ServletRegistrationBean(new HystrixMetricsStreamServlet());
registrationBean.addUrlMappings("/actuator/hystrix.stream");
return registrationBean;
}
4.启动 springcloud-provider-dept-hystrix-8001
- http://localhost:8001/dept/queryDeptById/1
- http://localhost:8001/actuator/hystrix.stream 【查看1秒一动的数据流】
监控测试
- 多次刷新 http://localhost:8001/dept/queryDeptById/1
- 观察监控窗口,就是那个豪猪页面
-
添加监控地址
Delay : 该参数用来控制服务器上轮询监控信息的延迟时间,默认为2000毫秒,可以通过配置该属性来降低客户端的网络和CPU消耗。
Title : 该参数对应了头部标题HystrixStream之后的内容,默认会使用具体监控实例URL,可以通过配置该信息来展示更合适的标题。 -
监控结果
-
如何看
- 7色
- 一圈
实心圆:公有两种含义,他通过颜色的变化代表了实例的健康程度
它的健康程度从绿色<黄色<橙色<红色 递减。
该实心圆除了颜色的变化之外,它的大小也会根据实例的请求流量发生变化,流量越大,该实心圆就越大,所以通过该实心圆的展示,就可以在大量的实例中快速发现故障实例和高压力实例。
- 一线
曲线:用来记录2分钟内流量的相对变化,可以通过它来观察到流量的上升和下降趋势。
- 整图说明
- 7色
-
搞懂一个才能看懂复杂的
-