Comments (8)
Very nice idea. Thanks for creating this.
from spring-cloud-netflix.
I would not recommend using out of service if circuit breakers are open. That is the point of Hystrix that the service does not go out of service.
from spring-cloud-netflix.
Also there are already a bunch of metrics (in /metrics) from Hystrix, so if anyone wants to create a health indicator from them it should be easy (as long as per Spencer's comment) the status is UP by default when the circuit is open.
from spring-cloud-netflix.
@spencergibb if the circuit is open, doesn't that mean the backend service is OUT_OF_SERVICE? That shouldn't indicate the caller is OUT_OF_SERVICE.
Therefore setting the entry for the backend service to OUT_OF_SERVICE in the result of the HealthIndicator would be fine, wouldn't it?
from spring-cloud-netflix.
To illustrate: A -> Hystrix -> B
Now if the Hystrix circuit to B is open the result of a call to /health
on A could return the following:
{
"status" : "UP",
"B" : {
"status" : "OUT_OF_SERVICE"
}
}
}
or instead of using OUT_OF_SERVICE
introduce a new CIRCUIT_OPEN
status.
from spring-cloud-netflix.
That makes sense. It's just the caller (the aggregate status) that should remain "UP".
from spring-cloud-netflix.
There are some crossed wires here as well though. Hystrix itself is not aware of services (that's Ribbon, which confusingly has its own circuit breaker, and publishes metrics to gauge.servo.ZoneStats_CircuitBreakerTrippedCountetc.). But the Hystrix circuits are also visible (e.g. in the customers app
gauge.hystrix.HystrixCommand.StoreIntegration.getStoresByLocationLink.rollingCountShortCircuited=2`).
from spring-cloud-netflix.
This is now available in d715ec5.
from spring-cloud-netflix.
Related Issues (20)
- Eureka client leaving sockets open, too many CLOSE_WAIT HOT 3
- Can I use the dashboard endpoint to help me figure out why my settings aren't working? HOT 5
- java.net.UnknownHostException when using org.springframework.web.client.RestClient instead of RestTemplate HOT 1
- use eureka without spring boot HOT 1
- Discovery client can't register -> 401 error HOT 3
- cannot register to eureka server when spring.cloud.refresh.enabled is false HOT 5
- Improve documentation on required HTTP client dependencies HOT 9
- Before eureka is registered, InstancePreRegisteredEvent will not be published. HOT 1
- Dependency vulnerability (org.codehaus.jettison) HOT 3
- Hello All, HOT 1
- not able to exceute HOT 1
- The API '/serverinfo/statusoverrides' from class ServerInfoResource don't work. HOT 1
- eureka: improve single-server experience
- Spring cloud ribbon loadbalancer error - org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class [org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration]; nested exception is java.io.FileNotFoundException: class path resource [org/springframework/cloud/commons/httpclient/HttpClientConfiguration$OkHttpClientConfiguration.class] cannot be opened because it does not exist HOT 1
- Missing observability support in RestTemplateTransportClientFactory HOT 2
- NullPointerException in EurekaClient when jeresey-client lib is found on the class path HOT 1
- Support Spring RestClient as TransportClientFactory HOT 3
- Cannot invoke "org.springframework.cloud.netflix.eureka.CloudEurekaClient.getApplications() HOT 2
- Jersey3DiscoveryClientOptionalArgs may be configured with TlsProperties in EurekaServerAutoConfiguration.java HOT 1
- UnresolvedAddressException when using webClient.get() to get from a discovery eureka client HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from spring-cloud-netflix.