7.springcloud_turbine监控(Finchley.SR2)

这是一个从零开始的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.SR2))