Skip to content

Conversation

@jrhee17
Copy link
Contributor

@jrhee17 jrhee17 commented Oct 30, 2025

Motivation:

In order to provide better telemetry into XdsLoadBalancer, this PR introduces XdsLoadBalancerLifecycleObserver.
These set of metrics are conceptually equivalent to envoy's *membership* stats.
ref: https://www.envoyproxy.io/docs/envoy/latest/configuration/upstream/cluster_manager/cluster_stats#config-cluster-manager-cluster-stats

In order to expose the internal state of XdsLoadBalancer, a LoadBalancerState interface is introduced which contains information on:

  • the lifecycle of updating the loadbalancer
  • endpoints per priority/locality
  • panic state
  • subset information

Modifications:

  • HostSet has been extracted to an interface, and the default implementation has been renamed to DefaultHostSet
  • residualPercentages are calculated for zone-aware load balancing to provide more meaningful insights into the internal state

Result:

  • XdsLoadBalancerLifecycleObserver can be used to observe the internal state of load balancers.

@jrhee17 jrhee17 changed the title minimal impl Introduce XdsLoadBalancerLifecycleObserver Oct 30, 2025
@jrhee17 jrhee17 force-pushed the feat/xds-error-step6 branch from b0ad907 to 3c9ca2e Compare October 30, 2025 01:32
@jrhee17 jrhee17 force-pushed the feat/xds-error-step6 branch from 3c9ca2e to c000073 Compare October 30, 2025 02:07
@jrhee17 jrhee17 added this to the 1.34.0 milestone Oct 30, 2025
@jrhee17 jrhee17 marked this pull request as ready for review November 3, 2025 06:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants