首页 > 编程语言 > 详细

spring-cloud-hystrix-dasboard服务调用监控

时间:2019-04-23 15:23:26      阅读:140      评论:0      收藏:0      [点我收藏+]
  除了隔离依赖服务的调用以外,hystrix还提供了准实时的调用监控(hystrix dashboard),hystrxi会持续的记录所有通过hyxtrix发起的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执行多少请求,多少成功,多少失败等。Netflix通过hystrix-metrics-event-stream项目实现了对以上指标的监控。SpringCloud也提供了hystrix dashboard的整合,对监控内容转化成可视化界面。
  Spring Cloud Hystrix Dashboard只是spring cloud基于Hystrix Dashboard,将实时监控数据通过页面呈现出来。Spring Cloud Hystrix Dashboard的底层原理是间隔一定时间去“Ping”目标服务,返回的结果是最新的监控数据,最后将数据显示出来。
1.创建一个boot项目,修改pom文件
<properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spring-cloud.version>Finchley.SR3</spring-cloud.version>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <!-- SpringCloud 所有子项目 版本集中管理. 统一所有SpringCloud依赖项目的版本依赖-->
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
            <version>1.4.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin><!-- SpringBoot 项目打jar包的Maven插件 -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

2.修改application.yml

server:
  port: 9005

spring:
  application:
    name: hystrix-dasboard #服务注册到Eureka上使用的名称

eureka:
  client:
    service-url:  # 集群情况下如下,如果是单机版,只需要配置单机版Eureka地址
      defaultZone: http://localhost:7001/eureka/,http://localhost:7002/eureka/
  instance:
    instance-id: hystrix-dasboard-9005
    prefer-ip-address: true #访问路径显示IP地址

info:   # 在Eureka上点击服务时会跳转到个404页面,可配置这里让他跳转到服务简介的一个页面,信息如下配置
  app.name: wuzz
  company.name: www.wuzz.com
  build.artifactId: hystrix-dasboard
  build.version: 1.0

3.修改启动类

@SpringBootApplication
@EnableHystrixDashboard //开启仪表盘图形化监控的注解
public class HystrixDasboardApp {
    private final static Logger log = LoggerFactory.getLogger(HystrixDasboardApp.class);

    public static void main(String[] args) {
        SpringApplication.run(HystrixDasboardApp.class,args);
        log.info("服务启动成功");
    }
}

4.启动本微服务 访问路径为 http://localhost:9005/hystrix,看到以下界面,说明仪表盘配置成功

技术分享图片

5.接着启动几个Eureka集群,携带有Hystrix(监控)服务熔断的微服务服务提供者。我这里端口为 8003  ,当我们访问http://localhost:8003/actuator/hystrix.stream 会出现以下界面,

  如果是一直处于ping:的状态,是因为没有服务调用,写一个测试接口访问一下会出现以下类似信息

技术分享图片

  如上图,即服务监控的输出信息,但是我们需要以一种可视化界面的方式去浏览。接下去我们需要配置一下基本信息,以查看可视化的界面

技术分享图片

  点击 Monitor Stream 会进入以下界面

技术分享图片

  实心圆:共有两种含义,他通过颜色的变化代表了实例的健康程度,它的健康程度从绿<黄<橙<红递减,该实心圆除了颜色的变化之外,它的大小也会根据实例的请求流量发生变化。流量越大该实心圆就越大。所以通过该实心圆,就可以在大量的实例中快速发现故障实例和高压力实例

  对于可视化监控界面(上图) 7 色 1 圈 1 线的含义如下图:

技术分享图片

  至此就配置好了仪表盘供用户查看服务实例的健康状况

spring-cloud-hystrix-dasboard服务调用监控

原文:https://www.cnblogs.com/wuzhenzhao/p/9505873.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!