HystrixDashboard 服务监控

2021-09-01  本文已影响0人  CodeYang

HystrixDashboard 服务监控

除了隔离依赖服务的调用以外,Hystrix还提供了准实时的调用监控(Hystrix Dashboard),Hystrix会持续地记录所有通过Hystrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求、多少成功、多少失败等。Netflix通过hystrix-metrics-event-stream 项目实现了对以上指标的监控。Spring Cloud 也提供了 Hystrix Dashboard的整合,对监控内容转化成可视化界面。

一、创建监控项目 cloud-hystrix-dashoboard-9001

  1. Pom 引入依赖项
    <dependencies>
        <!-- Hystrix 监控 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
        </dependency>
        <!-- actuator 监控信息完善  所有微服务的提供类都要依赖这个监控依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>
  1. 创建 application.yml,配置端口号
server:
  port: 9001
  1. 创建启动类,开启 Hystrix Dashboard 监控 注解
@SpringBootApplication
@EnableHystrixDashboard //开启 Hystrix Dashboard 监控
public class HystrixDashboardApp9001 {
    public static void main(String[] args) {
        SpringApplication.run(HystrixDashboardApp9001.class);
    }
}

二、服务提供者,引入监控依赖 [pom修改]

<!-- actuator 监控信息完善  所有微服务的提供类都要依赖这个监控依赖-->
<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

三、启动测试

  1. 启动注册中心 cloud-eureka-7001
  2. 启动服务提供者 cloud-provider-8001
  3. 启动监控平台 cloud-hystrix-dashoboard-9001
  4. 访问 http://localhost:9001/hystrix
  5. 出现界面


    Dashoboard.png
  6. 填写监控的地址、延迟时间及标题,点击进入


    填写相关信息.png

7.进入页面发现提示红字错误信息。

这是坑 Spring Cloud 升级之后留下的。

image.png
  1. 解决方法

在被监控服务(cloud-provider-8001)的启动类上新增以下代码,重启。

    /**
     * 此配置是为了服务监控而配置,与服务容错本身无关,spring cloud 升级后的坑
     * ServletRegistrationBean 因为spring boot 默认路劲不是 ”/hystrix.stream“
     * 只要在自己的项目里面配置上下面的servlet 就可以了。
     * @return
     */
    @Bean
    public ServletRegistrationBean getServlet(){
        HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
        ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
        registrationBean.setLoadOnStartup(1);
        registrationBean.addUrlMappings("/hystrix.stream");
        registrationBean.setName("HystrixMetricsStreamServlet");
        return registrationBean;
    }
  1. 再次查看,查看正常。


    监控初始界面.png
  2. 发起请求测试
    http://localhost:8001/provider/circuitbreaker/1
    http://localhost:8001/provider/circuitbreaker/-1
  3. 观察图标


    出现变化.png
  4. 不断请求错误界面,发现断路器打开


    断路器打开.png

四、监控图形说明

监控图形说明.png
上一篇下一篇

猜你喜欢

热点阅读