How to enable "hystrix.stream" in Spring Boot 2.0?
Solution 1
- Add
@EnableCircuitBreaker
or@EnableHystrix
annotation with@EnableHystrixDashboard
. - Add
management.endpoints.web.exposure.include=*
in application.properties. - Hystrix dashboard can be accessible at http://localhost:8080/hystrix .
- Enter http://localhost:8080/actuator/hystrix.stream in Hystrix stream URL input.
Solution 2
You need to include management.endpoints.web.exposure.include=*
in application.properties according to this issue
Solution 3
You need to add management.endpoints.web.base-path=/
in your application.properties. For example, check this out.
The path needs to be empty, so it registers correct as /actuator/hystrix.stream
.
Admin
Updated on July 24, 2022Comments
-
Admin almost 2 years
I cannot seem to find how to enable hystrix.stream in Spring Boot 2.0. When I try to access the file by going to http://localhost:8080/hystrix.stream I get a 404 file not found error.
Method called in the controller:
@GetMapping("/") public Mono<String> index(Model model) { model.addAttribute("images", imageService .findAllImages() .map(image -> new HashMap<String, Object>() {{ put("id", image.getId()); put("name", image.getName()); put("imageComments", commentHelper.getComments(image)); }}) ); return Mono.just("index"); }
CommentHelper code, note that @HystrixCommand is being used:
@Component public class CommentHelper { private final RestTemplate restTemplate; CommentHelper(RestTemplate restTemplate) { this.restTemplate = restTemplate; } @HystrixCommand(fallbackMethod = "defaultComments") public List<Comment> getComments(Image image) { return restTemplate.exchange( "http://COMMENTS/comments/{imageId}", HttpMethod.GET, null, new ParameterizedTypeReference<List<Comment>>() {}, image.getId()).getBody(); } public List<Comment> defaultComments(Image image) { return Collections.emptyList(); } }
These are the dependencies from build.gradle:
dependencies { compile 'org.springframework.boot:spring-boot-starter-webflux' compile 'org.synchronoss.cloud:nio-multipart-parser' compile 'org.springframework.boot:spring-boot-starter-data-mongodb-reactive' compile 'org.springframework.boot:spring-boot-starter-thymeleaf' compile 'org.springframework.boot:spring-boot-starter-actuator' compile 'org.springframework.boot:spring-boot-devtools' compile 'org.springframework.cloud:spring-cloud-starter-stream-rabbit' compile 'org.springframework.cloud:spring-cloud-stream-reactive' compile 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client' compile 'org.springframework.cloud:spring-cloud-starter-netflix-hystrix' testCompile 'org.springframework.boot:spring-boot-starter-test' testCompile 'io.projectreactor:reactor-test' compile 'junit:junit:4.12' }
When I go to http://localhost:8080/application/features you can see that Hystrix is enabled as shown in the following:
{ "enabled": [ { "type": "com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect", "name": "Hystrix", "version": "1.5.12", "vendor": null }, { "type": "com.netflix.discovery.EurekaClient", "name": "Eureka Client", "version": "1.8.4", "vendor": null }, { "type": "org.springframework.cloud.client.discovery.composite.CompositeDiscoveryClient", "name": "DiscoveryClient", "version": "2.0.0.M3", "vendor": "Pivotal Software, Inc." }, { "type": "org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient", "name": "LoadBalancerClient", "version": "2.0.0.M3", "vendor": "Pivotal Software, Inc." }, { "type": "com.netflix.ribbon.Ribbon", "name": "Ribbon", "version": "2.2.2", "vendor": null } ], "disabled": [] }
What exactly is wrong here? If it helps, I'm trying to follow along with the code found here
https://github.com/learning-spring-boot/learning-spring-boot-2nd-edition-code/tree/master/7/part2
As I'm going working my way through the book Learning Spring Boot 2nd Edition.
-
PAA over 4 yearsCould you please guide me here: stackoverflow.com/questions/59738969/…?
-
PAA over 4 yearsCould you please guide me here: stackoverflow.com/questions/59738969/… ?