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...
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