spring-cloudhystrixturbine

Spring Cloud Turbine AMQP doesn't working with Hystrix Dashboard


I'm trying to set up spring cloud turbine amqp and hystrix dashboard. But when I start all applications hystrix dashboard doesn't show me anything: hystrix-dashboard-screenshot-link

But when I open turbine stream link, I see not empty data: turbine-stream-data-screenshot-link

When I stop my turbine service and run sample: https://github.com/spring-cloud-samples/turbine

It's working: working-hystrix-dashboard-screenshot-link

So, the problem is in the my turbine service. This is the TurbineApplication.java:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.turbine.stream.EnableTurbineStream;

@EnableTurbineStream
@SpringBootApplication
public class TurbineApplication {
    public static void main(String[] args) {
        SpringApplication.run(TurbineApplication.class, args);
    }
}

This is the application.yml:

server:
  port: ${PORT:8989}

eureka:
  user:
    name: "{cipher}6c627b546202f13ffa9e3edf39974a3bfca5d615f58dcbfc23065661968b13c5"
    password: "{cipher}75efd89c7c4d79220a5b3f35e9ad692a69c820fa0b99e9c48ae9433d45ba016db808ab9dce78382235e529291f8aa0be"
  instance:
    preferIpAddress: true
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://${eureka.user.name}:${eureka.user.password}@127.0.0.1:8761/eureka/

This is bootstrap.yml:

spring:
  application:
    name: turbine-service

And this is gradle.build:

buildscript {
    ext {
        springBootVersion = '1.5.9.RELEASE'
        dockerPluginVersion = '1.2'
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        classpath("se.transmode.gradle:gradle-docker:${dockerPluginVersion}")
    }
}

apply plugin: 'java'
apply plugin: 'docker'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'

group = 'com.pda'

jar {
    baseName = 'turbine-service'
    version = 'latest'
}

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}


ext {
    springCloudVersion = 'Edgware.RELEASE'
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-actuator')
    compile('org.springframework.boot:spring-boot-starter-web')

    compile('org.springframework.cloud:spring-cloud-starter-turbine-stream')
    compile('org.springframework.cloud:spring-cloud-starter-stream-rabbit')

}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    }
}

eclipse {
    classpath {
        containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
        containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8'
    }
}

task buildDocker(type: Docker, dependsOn: build) {
    push = false
    applicationName = jar.baseName
    dockerfile = file('src/main/docker/Dockerfile')
    doFirst {
        copy {
            from jar
            into stageDir
        }
    }
}

It looks like the problem is in the dependencies version.


Solution

  • The problem is in the Edgware.RELEASE (and Edgware.SR1) version. It's need to downgrade spring cloud version (for example, to Dalston.SR5), or use Edgware.BUILD-SNAPSHOT.

    Description: https://github.com/spring-cloud/spring-cloud-netflix/issues/2637