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
- 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>
- 创建 application.yml,配置端口号
server:
port: 9001
- 创建启动类,开启 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>
三、启动测试
- 启动注册中心 cloud-eureka-7001
- 启动服务提供者 cloud-provider-8001
- 启动监控平台 cloud-hystrix-dashoboard-9001
- 访问 http://localhost:9001/hystrix
-
出现界面
Dashoboard.png -
填写监控的地址、延迟时间及标题,点击进入
填写相关信息.png
7.进入页面发现提示红字错误信息。
image.png这是坑 Spring Cloud 升级之后留下的。
- 解决方法
在被监控服务(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;
}
-
再次查看,查看正常。
监控初始界面.png - 发起请求测试
http://localhost:8001/provider/circuitbreaker/1
http://localhost:8001/provider/circuitbreaker/-1 -
观察图标
出现变化.png -
不断请求错误界面,发现断路器打开
断路器打开.png