美文网首页
7.springcloud_turbine监控(Finchley

7.springcloud_turbine监控(Finchley

作者: 机智的jack | 来源:发表于2019-03-02 23:08 被阅读0次

    这是一个从零开始的springcloud的系列教程,如果你从中间开始看,可能会看不明白.请进入我的系列教程开始从头开始学习.spring-cloud教程

    Turbine

    看单个的Hystrix Dashboard的数据并没有什么多大的价值,要想看这个系统的Hystrix Dashboard数据就需要用到Hystrix Turbine。Hystrix Turbine将每个服务Hystrix Dashboard数据进行了整合。Hystrix Turbine的使用非常简单,只需要引入相应的依赖和加上注解和配置就可以了。


    创建一个turbine工程

    pom.xml

    server:
      port: 8000
    
    spring:
      application:
        name: hystrix-turbine
    
    eureka:
      client:
        serviceUrl:
          defaultZone: http://localhost:7770/eureka/
    
    
    ########## turbine配置详解 ############
    
    ########## turbine配置详解 ############
    
    # 情况1,使用服务名字作为集群名字,被监控应用不需要配置任务额外的东西,
    # 直接读取被监控的应用服务名字作为集群。
    # 当发现服务名字为EUREKA-CLIENT-FEIGN(eureka会让其大写),状态数据将会被读取
    #turbine:
    #  aggregator:
    #    cluster-config: EUREKA-CLIENT-FEIGN        # 需要监控的服务集群名
    #  app-config: eureka-client-feign               # 需要监控的服务名
    
    #情况2,当clusterNameExpression=metadata['cluster']
    #使用被监控服务eureka.instance.metadata-map.cluster名字作为集群名字
    #当发现服务的eureka.instance.metadata-map.cluster为EUREKA-CLIENT-FEIGN(eureka会让其大写),状态数据将会被读取
    #turbine:
    #  aggregator:
    #    cluster-config: EUREKA-CLIENT-FEIGN        # 需要监控的服务集群名,可以多个,用,号分隔
    #  app-config: eureka-client-feign               # 需要监控的服务名,多个用,号分隔
    #  cluster-name-expression: metadata['cluster']
    
    #情况3,当clusterNameExpression="'default'"
    #无论什么服务状态数据都会将会被读取
    turbine:
      app-config: eureka-client-feign               # 需要监控的服务名,多个用,号分隔
      cluster-name-expression: "'default'"
    
    
    

    创建turbine

    package com.jack.turbine;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cloud.netflix.turbine.EnableTurbine;
    
    @SpringBootApplication
    @EnableTurbine
    // 启动dashboard
    @EnableHystrixDashboard
    // 启动hystrix
    @EnableHystrix
    public class TurbineApplication {
        public static void main(String[] args) {
            SpringApplication.run(TurbineApplication.class, args);
        }
    }
    

    访问http://localhost:8000/hystrix,可以看到一个dashboard

    image.png

    因为使用turbine,所有要输入turbine的状态流,http://localhost:8000/turbine.stream, 该流由指定观察服务的熔断器状态流(hystrix.stream)组成.

    输入http://localhost:8000/turbine.stream,点击Monitor Stream.访问/hello_store会发现错误信息.

    image.png

    是不是很简单.使用turbine,我们就能观察我们想要观察的服务了.


    如果使用turbine配置的情况2,需要在eureka-client-feign的application.yml中加入,指定其集群名字,因为turbine通过读取该参数和cluster-config中的参数进行匹配来决定是否获取其状态流

    eureka:
      instance:
        metadata-map:
          cluster: EUREKA-CLIENT-FEIGN
    

    输入http://localhost:8000/turbine.stream?cluster=EUREKA-CLIENT_FEIGN . 访问localhost:7773/hello_stores就可以观察到了.如果处于loading,稍微等一下,同步可能需要一小会.

    image.png

    相关文章

      网友评论

          本文标题:7.springcloud_turbine监控(Finchley

          本文链接:https://www.haomeiwen.com/subject/qtduuqtx.html