From 1ed538f253577273181986d29e1ac08e406aefcc Mon Sep 17 00:00:00 2001 From: ZHANG Dapeng Date: Tue, 28 Jan 2020 09:55:04 -0800 Subject: [PATCH] all: log picker when updating balancing state Let `ManagedChannelImpl` log picker update when updating balancing state. --- .../AutoConfiguredLoadBalancerFactory.java | 5 ++ .../io/grpc/internal/ManagedChannelImpl.java | 10 +++- .../java/io/grpc/internal/OobChannel.java | 46 +++++++++++++------ .../grpc/internal/PickFirstLoadBalancer.java | 6 +++ .../grpc/util/GracefulSwitchLoadBalancer.java | 20 +++++--- .../io/grpc/util/RoundRobinLoadBalancer.java | 11 +++++ .../grpc/internal/ManagedChannelImplTest.java | 2 +- .../main/java/io/grpc/grpclb/GrpclbState.java | 8 ++++ .../java/io/grpc/xds/ClientLoadCounter.java | 14 ++++++ 9 files changed, 100 insertions(+), 22 deletions(-) diff --git a/core/src/main/java/io/grpc/internal/AutoConfiguredLoadBalancerFactory.java b/core/src/main/java/io/grpc/internal/AutoConfiguredLoadBalancerFactory.java index c775deca00..d0a71b3ded 100644 --- a/core/src/main/java/io/grpc/internal/AutoConfiguredLoadBalancerFactory.java +++ b/core/src/main/java/io/grpc/internal/AutoConfiguredLoadBalancerFactory.java @@ -432,6 +432,11 @@ public final class AutoConfiguredLoadBalancerFactory { public PickResult pickSubchannel(PickSubchannelArgs args) { return PickResult.withNoResult(); } + + @Override + public String toString() { + return MoreObjects.toStringHelper(EmptyPicker.class).toString(); + } } private static final class FailingPicker extends SubchannelPicker { diff --git a/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java b/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java index 062acc3a59..040d964da5 100644 --- a/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java +++ b/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java @@ -812,6 +812,13 @@ final class ManagedChannelImpl extends ManagedChannel implements public PickResult pickSubchannel(PickSubchannelArgs args) { return panicPickResult; } + + @Override + public String toString() { + return MoreObjects.toStringHelper(PanicSubchannelPicker.class) + .add("panicPickResult", panicPickResult) + .toString(); + } } updateSubchannelPicker(new PanicSubchannelPicker()); @@ -1146,7 +1153,8 @@ final class ManagedChannelImpl extends ManagedChannel implements // It's not appropriate to report SHUTDOWN state from lb. // Ignore the case of newState == SHUTDOWN for now. if (newState != SHUTDOWN) { - channelLogger.log(ChannelLogLevel.INFO, "Entering {0} state", newState); + channelLogger.log( + ChannelLogLevel.INFO, "Entering {0} state with picker: {1}", newState, newPicker); channelStateManager.gotoState(newState); } } diff --git a/core/src/main/java/io/grpc/internal/OobChannel.java b/core/src/main/java/io/grpc/internal/OobChannel.java index 512abaeed1..aae3314f3f 100644 --- a/core/src/main/java/io/grpc/internal/OobChannel.java +++ b/core/src/main/java/io/grpc/internal/OobChannel.java @@ -173,14 +173,23 @@ final class OobChannel extends ManagedChannel implements InternalInstrumented