line / armeria

Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Retrofit, Reactive Streams, Spring Boot and Dropwizard.
https://armeria.dev
Apache License 2.0
4.73k stars 899 forks source link

Support for degraded health #5705

Open ikhoon opened 1 month ago

ikhoon commented 1 month ago

HealthCheckService only return if a server is only healthy or unhealthy. degraded is a status which a server is able to receive traffic but it is slow or unstable. https://learn.microsoft.com/en-us/dotnet/api/microsoft.extensions.diagnostics.healthchecks.healthstatus?view=net-8.0#fields https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/upstream/load_balancing/degraded

For example, we may regard a server as degraded if CPU hits over a certain usage. This option will be useful when the health check is successful but the node has a problem and should be excluded from the service cluster.

seonWKim commented 3 weeks ago

I've made a PR for above issue. It's not fully complete so we may add more ideas on top of the it. 😄