You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by sy...@apache.org on 2020/06/08 12:35:14 UTC
[zookeeper] branch master updated: ZOOKEEPER-3845: Add metric
JVM_PAUSE_TIME
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 <ji...@fb.com>
AuthorDate: Mon Jun 8 12:33:03 2020 +0000
ZOOKEEPER-3845: Add metric JVM_PAUSE_TIME
Author: Jie Huang <ji...@fb.com>
Reviewers: Michael Han <ha...@apache.org>, Andor Molnar <an...@apache.org>, Enrico Olivelli <eo...@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));