主要用来实时监控Hystrix的各项指标信息,通过仪表盘反馈的实时信息,可以帮助我们快速的发现系统中存在的问题,从而及时的采取对应的措施。
架构图如下:
dashboard.jpeg- Hystix Dashboard实现
- 创建一个新的springboot工程,命名为:hystrix-dashboard
- 编辑pom.xml,主要依赖内容如下:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- 修改应用主类,添加@EnableHystrixDashboard 开启Hystrix Dashboard功能:
@SpringBootApplication
@EnableHystrixDashboard
public class DashboardApplication {
public static void main(String[] args) {
SpringApplication.run(DashboardApplication.class, args);
}
}
4.配置端口号等信息
spring:
application:
name: hystrix-dashboard
server:
port: 3000
5.到这里hystrix Dashboard配置已经基本完成,启动应用,访问http://localhost:3000/hystrix,界面如下。
从界面上标的1、2、3可以看出来,Hystrix Dashboard支持三种不同的监控方式
1、集群监控,需要整合Turbine来实现,下一章体现。
2、指定的集群监控,需要整合Turbine来实现,下一章体现。
3、单体应用监控,实现对具体的某个服务实例监控。
- Hystix Dashboard实现以后,接下来对服务实例进行简单的修改
1、修改ribbon-consumer(我自己创建的一个消费服务)项目
2、pom.xml添加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
3、修改应用主类,确保使用@EnableCircuitBreaker开启了断路器功能
@EnableDiscoveryClient
@EnableCircuitBreaker
@SpringBootApplication
public class RibbonApplication {
/**
* LoadBalanced 开启客户端负载均衡
* @return
*/
@Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(RibbonApplication.class, args);
}
}
4、在 application.yml 文件中增加以下配置,将endpoint信息全部暴露出来,不然会出现Unable to connect to Command Metric Stream的错误:
management:
endpoints:
web:
exposure:
include: "*"
- 到此所有配置全部结束,下面来查看效果
1、在Hystrix Dashboard首页输入 http://localhost:8000/actuator/hystrix.stream(SpringBoot2.x版本Spring团队对原有的规则进行了修改:原来直接通过/hystrix.stream,在SpringBoot2.x版本需要加上/actuator,即/actuator/hystrix.stream),点击Monitor Stream,可以看到已经实现了对ribbon-consumer实例的监控。
左上角两个重要信息,一个实心圆和一条曲线
实心圆:通过颜色的变化代表了实例的健康程度,它的健康度从绿色、黄色、橙色、红色递减。除了颜色变化之外,它的大小也会根据实例的请求流量变化,流量越大该实心圆就越大,如上图。
曲线:用来记录2分钟内流量的相对变化,可以通过它来观察流量的上升和下降趋势。
其它的指标含义请参考文档:https://github.com/Netflix-Skunkworks/hystrix-dashboard/wiki
网友评论