Skip to content

Commit c745c31

Browse files
committed
instrumentation logs.
1 parent 032d292 commit c745c31

File tree

1 file changed

+24
-12
lines changed

1 file changed

+24
-12
lines changed

core/src/main/java/io/grpc/internal/KeepAliveEnforcer.java

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import com.google.common.base.Preconditions;
2121
import com.google.errorprone.annotations.CheckReturnValue;
2222
import java.util.concurrent.TimeUnit;
23+
import java.util.logging.Level;
24+
import java.util.logging.Logger;
2325

2426
/** Monitors the client's PING usage to make sure the rate is permitted. */
2527
public final class KeepAliveEnforcer {
@@ -36,7 +38,7 @@ public final class KeepAliveEnforcer {
3638
private long lastValidPingTime;
3739
private boolean hasOutstandingCalls;
3840
private int pingStrikes;
39-
41+
private static final Logger log = Logger.getLogger(KeepAliveEnforcer.class.getName());
4042
public KeepAliveEnforcer(boolean permitWithoutCalls, long minTime, TimeUnit unit) {
4143
this(permitWithoutCalls, minTime, unit, SystemTicker.INSTANCE);
4244
}
@@ -50,24 +52,34 @@ public KeepAliveEnforcer(boolean permitWithoutCalls, long minTime, TimeUnit unit
5052
this.ticker = ticker;
5153
this.epoch = ticker.nanoTime();
5254
lastValidPingTime = epoch;
55+
log.log(Level.INFO, "minTimeNanos=" + minTimeNanos);
5356
}
5457

5558
/** Returns {@code false} when client is misbehaving and should be disconnected. */
5659
@CheckReturnValue
5760
public boolean pingAcceptable() {
5861
long now = ticker.nanoTime();
5962
boolean valid;
60-
if (!hasOutstandingCalls && !permitWithoutCalls) {
61-
valid = compareNanos(lastValidPingTime + IMPLICIT_PERMIT_TIME_NANOS, now) <= 0;
62-
} else {
63-
valid = compareNanos(lastValidPingTime + minTimeNanos, now) <= 0;
64-
}
65-
if (!valid) {
66-
pingStrikes++;
67-
return pingStrikes <= MAX_PING_STRIKES;
68-
} else {
69-
lastValidPingTime = now;
70-
return true;
63+
log.log(Level.INFO, "Enter pingAcceptable.");
64+
try {
65+
if (!hasOutstandingCalls && !permitWithoutCalls) {
66+
valid = compareNanos(lastValidPingTime + IMPLICIT_PERMIT_TIME_NANOS, now) <= 0;
67+
} else {
68+
valid = compareNanos(lastValidPingTime + minTimeNanos, now) <= 0;
69+
log.log(Level.INFO, String.format("lastValidPingTime + minTimeNanos =%d, now=%d, difference=%fs, valid=%s.",
70+
lastValidPingTime + minTimeNanos, now, (now - lastValidPingTime - minTimeNanos) / 1_000_000_000.0, valid));
71+
}
72+
if (!valid) {
73+
pingStrikes++;
74+
log.log(Level.INFO, "Not valid. pingStrikes=" + pingStrikes + ". Returning " + (pingStrikes <= MAX_PING_STRIKES));
75+
return pingStrikes <= MAX_PING_STRIKES;
76+
} else {
77+
log.log(Level.INFO, "Valid. Setting lastValidPingTime to now.");
78+
lastValidPingTime = now;
79+
return true;
80+
}
81+
} finally {
82+
log.log(Level.INFO, "Exit pingAcceptable.");
7183
}
7284
}
7385

0 commit comments

Comments
 (0)