eureka:
+ instance:
+ metadata-map:
+ management.port: ${management.port:8081}
+diff --git a/spring-cloud-netflix.html b/spring-cloud-netflix.html index 12f3a912c..06e5d1c43 100644 --- a/spring-cloud-netflix.html +++ b/spring-cloud-netflix.html @@ -1163,6 +1163,27 @@ for details on setting up your build system with the current Spring Cloud Releas
Looking at an individual instances Hystrix data is not very useful in terms of the overall health of the system. Turbine is an application that aggregates all of the relevant /hystrix.stream endpoints into a combined /turbine.stream for use in the Hystrix Dashboard. Individual instances are located via Eureka. Running Turbine is as simple as annotating your main class with the @EnableTurbine annotation (e.g. using spring-cloud-starter-turbine to set up the classpath). All of the documented configuration properties from the Turbine 1 wiki apply. The only difference is that the turbine.instanceUrlSuffix does not need the port prepended as this is handled automatically unless turbine.instanceInsertPort=false.
|
+ Note
+ |
+
+By default, Turbine looks for the /hystrix.stream endpoint on a registered instance by looking up its homePageUrl entry in Eureka, then appending /hystrix.stream to it. This means that if spring-boot-actuator is running on its own port (which is the default), the call to /hystrix.stream will fail.
+To make turbine find the Hystrix stream at the correct port, you need to add management.port to the instances' metadata:
+ |
+
eureka:
+ instance:
+ metadata-map:
+ management.port: ${management.port:8081}
+The configuration key turbine.appConfig is a list of eureka serviceIds that turbine will use to lookup instances. The turbine stream is then used in the Hystrix dashboard using a url that looks like: http://my.turbine.sever:8080/turbine.stream?cluster=<CLUSTERNAME> (the cluster parameter can be omitted if the name is "default"). The cluster parameter must match an entry in turbine.aggregator.clusterConfig. Values returned from eureka are uppercase, thus we expect this example to work if there is an app registered with Eureka called "customers":