DashBoard----Hystrix熔断器监控仪表板的使用

DashBoard----Hystrix熔断器监控仪表板的使用
被DashBoard监控需要满足两个条件:
1.使用了Hystrix熔断器
2.应用中引入的spring boot的健康管理依赖 actuator

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
 </dependency>

一、单个Hystrix熔断器的监控
1.新建一个model,引入dashboard依赖

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

2.在启动类上@EnableHystrixDashboard注解,开启Hystrix监控,在配置文件中指定应用端口8004
3.启动应用,浏览器访问localhost:8004/hystrix ,dashBoard监控首页,如下
在这里插入图片描述
(1)Delay:监控延迟时间,多长时间请求监控一次,具体在页面上怎么显示,下面有截图说明
(2)Title:仪表盘的标题
(3)中间的三句英文表示含义依次为:
.被监控的应用为集群且集群名称为默认的default的时,按此格式在上面的输入框输入被监控的地址;
.被监控的应用为集群且集群名称不是default的时,按此格式在上面的输入框输入被监控的地址;
.被监控的应用为单个应用时,按此格式在上面的输入框输入被监控的地址;
4.单个应用的访问端口为80,所以在输入框输入的地址为http://localhost/actuator/hystrix.stream
5.在开启监控前,先单独访问下地址http://localhost/actuator/hystrix.stream,若有Hystrix熔断器的访问数据,则表示被监控的应用正常,可以发起监控,
在这里插入图片描述
上图为已经访问过接口的监控数据,如果没有访问过的话,该请求的监控数据如下:

ping
ping
ping
ping
ping
ping
ping 

上面介绍过的delay延时时间,指的就是监控请求的轮巡时间,也就是ping的时间
出现以上两个页面,说明熔断器应用的健康状态正常,可以监控
6.在dashboard监控首页点击Monitor Stream,开启监控,页面如下
在这里插入图片描述
getAllDept:为被监控的方法
下面为该方法使用的线程池
各个数字颜色的含义这就就不再说明了,百度下就有,现在连续访问这个接口,看下仪表板有什么变化
在这里插入图片描述
如上图所示,仪表板可以更直观的看到getAllDept被请求的次数和波段变化
二、集群下dashBoard的使用
通过单个Hystrix的监控,我们可以大致知道dashBoard的工作流程,如下

dashboard ------> Hystrix应用
那如果Hystrix应用是个集群该怎么监控呢,同时监控所有的节点是不可能的,因为监控页面的地址栏只能填写一个地址。这里我们就需要使用到Turbine了
Turbine:聚合,将集群应用Hystrix的访问数据聚合到Turbine上,dashboard监控Turbine,从而达到监控整个Hystrix应用的目的。
使用过程如下
1.将Turbine和Hystrix应用各个节点注册的注册中心Eureka;
2.Turbine通过应用名称(集群通过应用名称访问)从eureka上获取各个应用的访问地址
3.在dashboard监控页面输入Turbine的地址,作为被监控地址

4.代码中需要注意的地方:
(1)Hystrix各个节点配置:

#应用访问端口
server:
  port: 80
#配置eureka客户端,从eureka服务端获取服务列表
eureka:
  client:
    fetch-registry: true   #表明自己是客户端
    register-with-eureka: true  #客户端不需要把自己作为服务注册到服务端
    service-url:    #注册中心的地址
      defaultZone: http://localhost:7001/eureka,http://localhost:7002/eureka,http://localhost:7003/eureka
#注册各个应用自己的ip和端口号,这个很重要,否则Turbine会访问不到
  instance:
    prefer-ip-address: true  #将自己的ip地址注册到Eureka服务中
    ip-address: 127.0.0.1
    instance-id: 127.0.0.1:80 #指定实例id
#开启健康管理所有接口  我们主要需要的是actuator/hystrix.stream
management:
  endpoints:
    web:
      exposure:
        include: "*"

#应用名称
spring:
  application:
    name: dept-consumer

(2)Turbine配置

eureka:
  client:
    service-url:
      defaultZone: http://localhost:7001/eureka,http://localhost:7002/eureka,http://localhost:7003/eureka
    fetch-registry: true   #自己是一个客户端
  instance:
    instanceId: turbine

server:
  port: 8005
turbine:
  appConfig: dept-consumer # 需要收集信息的服务名
  cluster-name-expression: "'default'" # 指定集群名称,
  combine-host-port: true # 同一主机上的服务通过主机名和端口号的组合来进行区分,默认以host来区分
  #访问地址后缀,这个地址会和Hystrix的ip和端口号拼接到一起作为被监控的地址
  instanceUrlSuffix: actuator/hystrix.stream
#应用名称
spring:
  application:
    name: turbine

5.访问dashboard监控页面,输入如下信息
在这里插入图片描述
6.同样,在开启监控前先测试下各个Hystrix应用节点的健康状态是否正常,目前我的应用中起了两个Hystrix节点,测试如下
在这里插入图片描述
在这里插入图片描述
7.各个节点的健康状态正常,开启监控,并范围两个节点的请求,仪表板如下
在这里插入图片描述
8.如果仪表板监控不到访问数据,可以看下Turbine日志中监控各个节点的地址是否正确,同时也可以拿着这个地址去浏览器测试,如果测试的时候接收不到ping数据,则该节点的健康状态或者监控地址有问题

至此dashBoard 单个、集群模式下的使用完成,最后附上集群下dashboard和Turbine的工作流程图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值