apple / servicetalk

A networking framework that evolves with your application
https://docs.servicetalk.io
Apache License 2.0
915 stars 180 forks source link

loadbalancer-experimental: properly capture consecutive error signals #2984

Closed bryce-anderson closed 3 months ago

bryce-anderson commented 3 months ago

Motivation:

We have signals from the OutlierDetector to the DefaultLoadBalancer that signals when our endpoints health changes. However, for XdsOutlierDetector, we compute this as the difference on each iteration but consecutive 5xx is tripped immediately, so it may not be captured, and neither will recoveries which are most likely going to flip outside of an outlier detector scan.

Modifications:

Result:

We catch health transitions every time instead of only when the happen during an outlier scan.