From abdae25c8d3978022abef32a57d3df6383c17b54 Mon Sep 17 00:00:00 2001 From: Kun Zhang Date: Tue, 22 Jan 2019 15:17:56 -0800 Subject: [PATCH] services: log an error to java logger when health-check disabled. (#5261) This is required by the spec: https://github.com/grpc/proposal/blob/master/A17-client-side-health-checking.md --- .../grpc/services/HealthCheckingLoadBalancerFactory.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/services/src/main/java/io/grpc/services/HealthCheckingLoadBalancerFactory.java b/services/src/main/java/io/grpc/services/HealthCheckingLoadBalancerFactory.java index 214eeabb34..754d1a779d 100644 --- a/services/src/main/java/io/grpc/services/HealthCheckingLoadBalancerFactory.java +++ b/services/src/main/java/io/grpc/services/HealthCheckingLoadBalancerFactory.java @@ -56,6 +56,8 @@ import java.util.List; import java.util.Map; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; +import java.util.logging.Level; +import java.util.logging.Logger; import javax.annotation.Nullable; /** @@ -69,6 +71,8 @@ import javax.annotation.Nullable; final class HealthCheckingLoadBalancerFactory extends Factory { private static final Attributes.Key KEY_HEALTH_CHECK_STATE = Attributes.Key.create("io.grpc.services.HealthCheckingLoadBalancerFactory.healthCheckState"); + private static final Logger logger = + Logger.getLogger(HealthCheckingLoadBalancerFactory.class.getName()); private final Factory delegateFactory; private final BackoffPolicy.Provider backoffPolicyProvider; @@ -421,6 +425,9 @@ final class HealthCheckingLoadBalancerFactory extends Factory { void handleStreamClosed(Status status) { if (Objects.equal(status.getCode(), Code.UNIMPLEMENTED)) { disabled = true; + logger.log( + Level.SEVERE, "Health-check with {0} is disabled. Server returned: {1}", + new Object[] {subchannel.getAllAddresses(), status}); subchannelLogger.log(ChannelLogLevel.ERROR, "Health-check disabled: {0}", status); subchannelLogger.log(ChannelLogLevel.INFO, "{0} (no health-check)", rawState); gotoState(rawState);