一、聚合监控简介
除了 服务降级、 服务熔断、 服务限流 等服务以外,Hystrix 还提供了 准实时的调用监控(Hystrix Dashboard),Hystrix 会持续地记录所有通过 Hystrix 发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求,多少成功,多少失败等。
Netflix 通过 hystrix-metrics-event-stream 项目实现了对以上指标的监控。同时 Spring Cloud 也提供了对 Hystrix Dashboard 的整合,将监控的内容信息转化成可视化界面。
1、Dashboard组件
微服务架构中为了保证程序的可用性,防止程序出错导致网络阻塞,出现了断路器模型。断路器的状况反应程序的可用性和健壮性,它是一个重要指标。HystrixDashboard是作为断路器状态的一个组件,提供了数据监控和直观的图形化界面。
2、Turbine组件
解决:在使用Hystrix Dashboard组件监控服务的熔断情况时,每个服务都有一个Hystrix Dashboard主页,当服务数量很多时,监控非常不方便.为了同时监控多个服务的熔断器的状况,Netflix开源了Hystrix的另一个组件Turbine.Turbine用于聚合多个Hystrix Dashboard,将多个Hystrix Dashboard组件的数据放在一个页面上展示,进行集中监控.
3、案例结构
聚合监控服务
node04-monitor-7002
注册中心
node04-eureka-7001
两个服务提供者,都配置了熔断器,和Dashboard组件
node04-provider-6001
node04-provider-6002
二、Dashboard组件
这个组件是针对单个微服务的监控的。具体使用流程如下。
1、注解和依赖
<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>
启动类注解
- @EnableHystrix
- @EnableHystrixDashboard
2、启动下面两个服务
node04-eureka-7001
node04-provider-6001
3、访问指定接口
1)、访问配置的熔断接口
http://localhost:6001/getInfo
2)、打开数据面板
http://localhost:6001/hystrix.stream 可以看到一些具体的数据,类似打印日志的方式,展现上面接口的执行信息。
3)、打开图形面板
http://localhost:6001/hystrix 查看配置监控信息。
(a)Deplay 该参数用来控制服务器上轮询监控信息的延迟时间,默认是2000毫秒,可以通过配置该属性来降低客户端的网络和cpu消耗。
(b)Title该参数对应了头部标题Hystrix Stream之后的内容,默认会使用哦具体监控实例的URL,可疑通过配置该信息来展示更合适的标题。
刷新几次上面配置的熔断接口,查看效果。
三、Turbine组件
node04-monitor-7002 聚合监控服务,聚集6001,和6002两个服务的监控。
1、依赖和注解
1)、服务提供者新增依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2)、聚合服务依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-turbine</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-netflix-turbine</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
启动类注解
@EnableTurbine
2、启动服务
依次启动注册中心,两个服务提供者,最后启动聚合监控中心。
3、操作流程
1)、打开监控面板
进行如下配置
2)、刷新两个服务的熔断接口
http://localhost:6001/getInfo
http://localhost:6002/getInfo
查看上面面板的监控信息如下。
实心圆:共有两种含义。它通过颜色的变化代表了实例的健康程度,它的健康程度从 绿色 > 黄色 > 橙色 > 红色 递减;
该实心圆除了颜色的变化之外,它的大小也会根据实例的请求流量发生变化,流量越大实心圆就越大,所以通过该实心圆的展示,就可以在大量实例中快速的发现故障实例和高压力实例.
聚合监控服务流程就是这样。