Search code examples
springspring-bootnetflix-eurekaturbine

how to have a turbine cluster for each eureka app in spring boot?


I am trying to obtain an "autoconfiguration" of turbine clusters from my eureka server.

registered on the eureka server I have configured 3 apps: app1, app2, app3. registered on the eureka server there are also a zuul proxy and a turbine monitor.

i can access the three apps via zuul correctly, i can see all of the hystrix.stream of each app correctly.

I have configured a single turbine cluster 'default' and I can see the merged turbine stream (and the dashboard) of all the three apps from the dashboard without issues.

my turbine application.properties looks like this:

eureka.client.serviceUrl.defaultZone=http://localhost:33210/eureka/
turbine.app-config=app1,app2,app3
turbine.cluster-name-expression=new String("default")

what I can't seem to do is to distinguish the turbine streams to avoid mashing up all the hystrix commands between the three apps in the dashboard.

what I would like to have as a result is the possibility to put

/turbine.stream?cluster=app1
/turbine.stream?cluster=app2
/turbine.stream?cluster=app3

where cluster matches the eureka name of each app, and obtain three different dashboards. I thought by documentation that removing by the cluster-name-expression the default would be the appName instead of the static 'default', but it doesn't happen.

what did I get wrong?


Solution

  • property name should be like

    turbine.clusterNameExpression= new String("default")
    

    to have different cluster for each stream... assuming you even have different management port enabled on each service in eureka, i.e. 51511 and 51521 is for service endpoints and 51512 and 51522 is for management endpoints.

    turbine.instanceInsertPort=false
    turbine.appConfig=service1,service2
    turbine.aggregator.clusterConfig=SERVICE1,SERVICE2
    turbine.instanceUrlSuffix.SERVICE1=:51512/hystrix.stream
    turbine.instanceUrlSuffix.SERVICE2=:51522/hystrix.stream