spring-bootmicroservicesspring-cloudhystrixturbine

Hystrix and Turbine does not work with Spring boot 2 and Spring cloud Finchley.M8


I tried turbine + hystrix dashboard with Spring boot 2 and latest versions of Spring cloud, seems exist some problem and turbine could not get stream from reactive service. I just uploaded simple microservices to github

https://github.com/armdev/reactive-spring-cloud

Exception like this:

com.netflix.turbine.monitor.instance.InstanceMonitor$MisconfiguredHostException: [{"timestamp":"2018-03-08T17:22:05.809+0000","status":404,"error":"Not Found","message":"No message available","path":"/hystrix.stream"}]
    at com.netflix.turbine.monitor.instance.InstanceMonitor.init(InstanceMonitor.java:318) ~[turbine-core-1.0.0.jar:na]
    at com.netflix.turbine.monitor.instance.InstanceMonitor.access$100(InstanceMonitor.java:103) ~[turbine-core-1.0.0.jar:na]
    at com.netflix.turbine.monitor.instance.InstanceMonitor$2.call(InstanceMonitor.java:235) [turbine-core-1.0.0.jar:na]
    at com.netflix.turbine.monitor.instance.InstanceMonitor$2.call(InstanceMonitor.java:229) [turbine-core-1.0.0.jar:na]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_101]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_101]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_101]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101]

Or broken PIPE.

Any one tried full spring cloud stack with Spring webflux? Any suggestions?


Solution

  • Fortunately problem solved by configuration, no any bug in Spring boot and Spring cloud. Many thanks to Josh Long ! Here you can find full project with config. https://github.com/armdev/reactive-spring-cloud/blob/master/google/src/main/resources/application.properties

    server.port=8082
    spring.application.name=turbine
    management.endpoint.health.enabled=true
    management.endpoints.jmx.exposure.include=*
    management.endpoints.web.exposure.include=*
    management.endpoints.web.base-path=/actuator
    management.endpoints.web.cors.allowed-origins=true
    management.endpoint.health.show-details=always
    eureka.client.serviceUrl.defaultZone=${EUREKA_URI:http://localhost:8761/eureka}
    eureka.instance.lease-expiration-duration-in-seconds=5
    eureka.instance.lease-renewal-interval-in-seconds=5
    turbine.aggregator.cluster-config=default
    turbine.app-config=google
    turbine.cluster-name-expression= new String("default")
    turbine.combine-host-port=true
    turbine.instanceUrlSuffix.default: actuator/hystrix.stream