spring-bootspring-cloudturbine

Spring Cloud turbine - No data returned from /turbine.stream


My techstack comprises of the following

Hystrix dashboard is working fine as I am able to stream using the hystrics.stream exposed out of my services.

However, whenever I try to add turbine to this stack, the /turbine.stream only returns data: {"type":"Ping"} repeatedly on the browser and as a result Hystrix dashboard shows Unable to connect to Command Metric Stream

Can someone please assist me to find out where I am going wrong?

Here are my key configurations for turbine. The TurbineAppliation class is just a springboot app with @EnableTurbineStream so not listing it down below.

pom dependencies:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.1.RELEASE</version>
</parent>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Camden.SR5</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

<dependencies>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-config-client</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-turbine-stream</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
    </dependency>

</dependencies>

bootstrap.yml: (Please ignore eureka specific config if it does not matter as I have not tuned them myself). The config server and eureka settings are same for all the other components which are working just fine.

spring:
  application:
    name: Turbine
  cloud:
    config:
      enabled: true
      discovery:
        enabled: true
        serviceId: ConfigServer

management:
  security:
    enabled: false

eureka:
  instance:
    leaseRenewalIntervalInSeconds: 10
#    leaseExpirationDurationInSeconds: 2
    preferIpAddress: true
    ipAddress: 127.0.0.1
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/discovery/eureka/ ---discovery is my eureka context root required for my app

application.yml

server:
  port: 7980

info:
  component: Turbine App

turbine:
  aggregator:
    clusterConfig: MY-SERVICE
  appConfig: MY-SERVICE
  clusterNameExpression: new String('default')
  InstanceMonitor:
    eventStream:
      skipLineLogic:
        enabled: false

Solution

  • Hi I am dealing with the same problem using Camden.SR6.

    After adding following in Turbine Service pom.xml, I was able to use turbine stream in hystrix dashboard:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-netflix-hystrix-amqp</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>
    

    Also I added : spring.rabbitmq.address=rabbit-mq-server:5672 to bootstrap.properties file.

    enter image description here