From 247a76ed9321e8ad2dba9ff46a96841ba3d8a91d Mon Sep 17 00:00:00 2001 From: zpencer Date: Mon, 7 May 2018 11:38:16 -0700 Subject: core,netty,okhttp: make toString more consistent for channelz (#4434) Use MoreObjects.toStringHelper and use only the log id's long value, because the class name is already present in the toStringHelper. --- .../main/java/io/grpc/inprocess/InProcessTransport.java | 6 +++++- .../main/java/io/grpc/internal/InternalSubchannel.java | 15 +++++++++++++++ .../main/java/io/grpc/internal/ManagedChannelImpl.java | 2 +- core/src/main/java/io/grpc/internal/OobChannel.java | 9 +++++++++ core/src/main/java/io/grpc/internal/ServerImpl.java | 2 +- .../src/main/java/io/grpc/netty/NettyClientTransport.java | 7 ++++++- netty/src/main/java/io/grpc/netty/NettyServer.java | 10 +++++++++- .../src/main/java/io/grpc/netty/NettyServerTransport.java | 10 ++++++++++ .../main/java/io/grpc/okhttp/OkHttpClientTransport.java | 6 +++++- 9 files changed, 61 insertions(+), 6 deletions(-) diff --git a/core/src/main/java/io/grpc/inprocess/InProcessTransport.java b/core/src/main/java/io/grpc/inprocess/InProcessTransport.java index 013c65832..77f94ad7d 100644 --- a/core/src/main/java/io/grpc/inprocess/InProcessTransport.java +++ b/core/src/main/java/io/grpc/inprocess/InProcessTransport.java @@ -20,6 +20,7 @@ import static com.google.common.base.Preconditions.checkNotNull; import static io.grpc.internal.GrpcUtil.TIMEOUT_KEY; import static java.lang.Math.max; +import com.google.common.base.MoreObjects; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.SettableFuture; import io.grpc.Attributes; @@ -210,7 +211,10 @@ final class InProcessTransport implements ServerTransport, ConnectionClientTrans @Override public String toString() { - return getLogId() + "(" + name + ")"; + return MoreObjects.toStringHelper(this) + .add("logId", logId.getId()) + .add("name", name) + .toString(); } @Override diff --git a/core/src/main/java/io/grpc/internal/InternalSubchannel.java b/core/src/main/java/io/grpc/internal/InternalSubchannel.java index c8103dbc1..0664aa6dd 100644 --- a/core/src/main/java/io/grpc/internal/InternalSubchannel.java +++ b/core/src/main/java/io/grpc/internal/InternalSubchannel.java @@ -23,6 +23,7 @@ import static io.grpc.ConnectivityState.SHUTDOWN; import static io.grpc.ConnectivityState.TRANSIENT_FAILURE; import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.MoreObjects; import com.google.common.base.Preconditions; import com.google.common.base.Stopwatch; import com.google.common.base.Supplier; @@ -390,6 +391,20 @@ final class InternalSubchannel implements Instrumented { } } + @Override + public String toString() { + // addressGroupCopy being a little stale is fine, just avoid calling toString with the lock + // since there may be many addresses. + Object addressGroupCopy; + synchronized (lock) { + addressGroupCopy = addressGroup; + } + return MoreObjects.toStringHelper(this) + .add("logId", logId.getId()) + .add("addressGroup", addressGroupCopy) + .toString(); + } + @GuardedBy("lock") private void handleTermination() { channelExecutor.executeLater(new Runnable() { diff --git a/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java b/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java index d21ad7f25..c2e0ba465 100644 --- a/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java +++ b/core/src/main/java/io/grpc/internal/ManagedChannelImpl.java @@ -1322,7 +1322,7 @@ final class ManagedChannelImpl extends ManagedChannel implements Instrumented