This is an automated email from the ASF dual-hosted git repository. symat pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/zookeeper.git
The following commit(s) were added to refs/heads/master by this push: new db99959 ZOOKEEPER-3845: Add metric JVM_PAUSE_TIME db99959 is described below commit db99959ef338783102f8755b4d10c1443f709425 Author: Jie Huang <jiehu...@fb.com> AuthorDate: Mon Jun 8 12:33:03 2020 +0000 ZOOKEEPER-3845: Add metric JVM_PAUSE_TIME Author: Jie Huang <jiehu...@fb.com> Reviewers: Michael Han <h...@apache.org>, Andor Molnar <an...@apache.org>, Enrico Olivelli <eolive...@apache.org>, Mate Szalay-Beko <sy...@apache.org> Closes #1365 from jhuan31/ZOOKEEPER-3845 --- .../src/main/java/org/apache/zookeeper/server/ServerMetrics.java | 4 ++++ .../main/java/org/apache/zookeeper/server/util/JvmPauseMonitor.java | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerMetrics.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerMetrics.java index 7566cd2..f7a9f3d 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerMetrics.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/ServerMetrics.java @@ -248,6 +248,8 @@ public final class ServerMetrics { RESPONSE_BYTES = metricsContext.getCounter("response_bytes"); WATCH_BYTES = metricsContext.getCounter("watch_bytes"); + + JVM_PAUSE_TIME = metricsContext.getSummary("jvm_pause_time_ms", DetailLevel.ADVANCED); } /** @@ -487,6 +489,8 @@ public final class ServerMetrics { public final Counter RESPONSE_BYTES; public final Counter WATCH_BYTES; + public final Summary JVM_PAUSE_TIME; + private final MetricsProvider metricsProvider; public void resetAll() { diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/JvmPauseMonitor.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/JvmPauseMonitor.java index 0a50c16..cdefb5d 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/JvmPauseMonitor.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/util/JvmPauseMonitor.java @@ -28,6 +28,7 @@ import java.util.List; import java.util.Map; import java.util.Set; import org.apache.zookeeper.server.ServerConfig; +import org.apache.zookeeper.server.ServerMetrics; import org.apache.zookeeper.server.quorum.QuorumPeerConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -191,8 +192,10 @@ public class JvmPauseMonitor { } long endTime = Instant.now().toEpochMilli(); long extraSleepTime = (endTime - startTime) - sleepTimeMs; + if (extraSleepTime >= 0) { + ServerMetrics.getMetrics().JVM_PAUSE_TIME.add(extraSleepTime); + } Map<String, GcTimes> gcTimesAfterSleep = getGcTimes(); - if (extraSleepTime > warnThresholdMs) { ++numGcWarnThresholdExceeded; LOG.warn(formatMessage(extraSleepTime, gcTimesAfterSleep, gcTimesBeforeSleep));