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 5011255 ZOOKEEPER-3856: Add a couple metrics to track inflight diff
syncs and snap syncs
5011255 is described below
commit 501125588052827d92a90f8a56d07cbbbdad2fa7
Author: Jie Huang <[email protected]>
AuthorDate: Mon Jun 8 12:44:38 2020 +0000
ZOOKEEPER-3856: Add a couple metrics to track inflight diff syncs and snap
syncs
There are useful metrics in a cluster with a large number of observes:
INFLIGHT_SNAP_COUNT
INFLIGHT_DIFF_COUNT
Author: Jie Huang <[email protected]>
Reviewers: Enrico Olivelli <[email protected]>, Mate Szalay-Beko
<[email protected]>
Closes #1374 from jhuan31/ZOOKEEPER-3856
---
.../src/main/java/org/apache/zookeeper/server/ServerMetrics.java | 6 ++++++
.../java/org/apache/zookeeper/server/quorum/LearnerHandler.java | 7 +++++++
2 files changed, 13 insertions(+)
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 f7a9f3d..c4ed3ba 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
@@ -84,6 +84,9 @@ public final class ServerMetrics {
CONNECTION_TOKEN_DEFICIT =
metricsContext.getSummary("connection_token_deficit", DetailLevel.BASIC);
CONNECTION_REJECTED = metricsContext.getCounter("connection_rejected");
+ INFLIGHT_SNAP_COUNT = metricsContext.getSummary("inflight_snap_count",
DetailLevel.BASIC);
+ INFLIGHT_DIFF_COUNT = metricsContext.getSummary("inflight_diff_count",
DetailLevel.BASIC);
+
WRITE_PER_NAMESPACE =
metricsContext.getSummarySet("write_per_namespace", DetailLevel.BASIC);
READ_PER_NAMESPACE =
metricsContext.getSummarySet("read_per_namespace", DetailLevel.BASIC);
@@ -308,6 +311,9 @@ public final class ServerMetrics {
public final Summary CONNECTION_TOKEN_DEFICIT;
public final Counter CONNECTION_REJECTED;
+ public final Summary INFLIGHT_SNAP_COUNT;
+ public final Summary INFLIGHT_DIFF_COUNT;
+
public final Counter UNRECOVERABLE_ERROR_COUNT;
public final SummarySet WRITE_PER_NAMESPACE;
public final SummarySet READ_PER_NAMESPACE;
diff --git
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerHandler.java
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerHandler.java
index 3bab398..4a7def8 100644
---
a/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerHandler.java
+++
b/zookeeper-server/src/main/java/org/apache/zookeeper/server/quorum/LearnerHandler.java
@@ -556,6 +556,7 @@ public class LearnerHandler extends ZooKeeperThread {
if (needSnap) {
syncThrottler = learnerMaster.getLearnerSnapSyncThrottler();
syncThrottler.beginSync(exemptFromThrottle);
+
ServerMetrics.getMetrics().INFLIGHT_SNAP_COUNT.add(syncThrottler.getSyncInProgress());
try {
long zxidToSend =
learnerMaster.getZKDatabase().getDataTreeLastProcessedZxid();
oa.writeRecord(new QuorumPacket(Leader.SNAP, zxidToSend,
null, null), "packet");
@@ -581,6 +582,7 @@ public class LearnerHandler extends ZooKeeperThread {
} else {
syncThrottler = learnerMaster.getLearnerDiffSyncThrottler();
syncThrottler.beginSync(exemptFromThrottle);
+
ServerMetrics.getMetrics().INFLIGHT_DIFF_COUNT.add(syncThrottler.getSyncInProgress());
ServerMetrics.getMetrics().DIFF_COUNT.add(1);
}
@@ -621,6 +623,11 @@ public class LearnerHandler extends ZooKeeperThread {
syncLimitCheck.start();
// sync ends when NEWLEADER-ACK is received
syncThrottler.endSync();
+ if (needSnap) {
+
ServerMetrics.getMetrics().INFLIGHT_SNAP_COUNT.add(syncThrottler.getSyncInProgress());
+ } else {
+
ServerMetrics.getMetrics().INFLIGHT_DIFF_COUNT.add(syncThrottler.getSyncInProgress());
+ }
syncThrottler = null;
// now that the ack has been processed expect the syncLimit