Search code examples
spring-cloudhystrixturbine

Spring Cloud and Hystrix, possible to monitor 2 kinds of applications on a single dashboard?


I'm actually trying Microservices using Spring Cloud. I have 2 kinds of applications (mysolution and mysolution-identity-provider). Both of them have Hystrix and Actuator enabled and provide information via hystrix.stream endpoint. I also make full use of Eureka, Ribbon and Feign for inter communication.

I'm trying to setup HystrixDashboard and Turbine on a separate server. Here's my application.yml :

turbine:
    aggregator:
        clusterConfig:MYSOLUTION
    appConfig: mysolution,mysolution-identity-provider

When I start the Turbine server, it successfully finds the instances of my 2 applications by using Eureka. But it only retrieves the Hystrix Stream from one of the apps (mysolution).

Here's the log :

EurekaInstanceDiscovery: Fetching instance list for apps: [mysolution, mysolution-identity-provider]
EurekaInstanceDiscovery: Fetching instances for app: mysolution
EurekaInstanceDiscovery: Received instance list for app: mysolution, size=1
EurekaInstanceDiscovery: Fetching instances for app: mysolution-identity-provider
EurekaInstanceDiscovery: Received instance list for app: mysolution-identity-provider, size=1
InstanceObservable: Retrieved hosts from InstanceDiscovery: 2
InstanceObservable: Found hosts that have been previously terminated: 0
InstanceObservable: Hosts up:2, hosts down: 0
InstanceMonitor: Url for host: http://mac-mini.local:8080/hystrix.stream MYSOLUTION

Is there a way to make Turbine retrieve streams from both applications ? I successfully followed the Spring Cloud documentation until now, the the part about Hystrix Turbine (without AMQP) remains... cloudy...


Solution

  • Setting the following should work:

    turbine:
      aggregator:
        clusterConfig: MYSOLUTION,MYSOLUTION-IDENTITY-PROVIDER
    

    You need each service in clusterConfig. And you need to put the cluster in the turbine url http://{turbine-hostname}:{turbine-port}/turbine.stream?cluster=MYSOLUTION