xds: implement toString() for pickers to visualize selectable hosts (#8123)

Implements toString() for the wrapping SubchannelPickers so that we are able to see how hosts are selected when sending out RPCs.
This commit is contained in:
Chengyuan Zhang 2021-04-28 15:16:30 -07:00 committed by GitHub
parent 72527708f5
commit 42d7fba1b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 0 deletions

View File

@ -20,6 +20,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
import static io.grpc.xds.XdsSubchannelPickers.BUFFER_PICKER;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.MoreObjects;
import com.google.common.base.Strings;
import io.grpc.Attributes;
import io.grpc.ClientStreamTracer;
@ -322,6 +323,11 @@ final class ClusterImplLoadBalancer extends LoadBalancer {
}
return result;
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this).add("delegate", delegate).toString();
}
}
}

View File

@ -24,6 +24,7 @@ import static io.grpc.ConnectivityState.TRANSIENT_FAILURE;
import static io.grpc.xds.XdsSubchannelPickers.BUFFER_PICKER;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.MoreObjects;
import io.grpc.ConnectivityState;
import io.grpc.InternalLogId;
import io.grpc.LoadBalancer;
@ -151,6 +152,11 @@ class ClusterManagerLoadBalancer extends LoadBalancer {
}
return delegate.pickSubchannel(args);
}
@Override
public String toString() {
return MoreObjects.toStringHelper(this).add("pickers", childPickers).toString();
}
};
helper.updateBalancingState(overallState, picker);
}