summaryrefslogtreecommitdiff
path: root/zookeeper-server/src/test/java
diff options
context:
space:
mode:
authorliwang <liwang@apple.com>2021-06-30 06:53:49 +0000
committerDamien Diederen <ddiederen@apache.org>2021-06-30 06:53:49 +0000
commit2d3065606a444c0b711c1809ce296db2ba56cb0c (patch)
treef5ecb4c2ac62a7be1eec8085896c77aa9601b8da /zookeeper-server/src/test/java
parent16187c48a1d9b339866b81e69c522021b031c4c3 (diff)
downloadzookeeper-2d3065606a444c0b711c1809ce296db2ba56cb0c.tar.gz
ZOOKEEPER-4284: Add metrics for observer sync time
Motivation - With enabling the feature of followers hosting observers, we would need a metric to measure the observer sync time just like what we have for the follower sync time. Changes - Added the "observer_sync_time" metrics - Added unit test on the metrics Author: liwang <liwang@apple.com> Reviewers: Enrico Olivelli <eolivelli@apache.org>, Michael Han <hanm@apache.org>, Damien Diederen <ddiederen@apache.org> Closes #1691 from li4wang/ZOOKEEPER-4284
Diffstat (limited to 'zookeeper-server/src/test/java')
-rw-r--r--zookeeper-server/src/test/java/org/apache/zookeeper/test/ObserverMasterTest.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ObserverMasterTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ObserverMasterTest.java
index 2d2bea768..4ba33c7a8 100644
--- a/zookeeper-server/src/test/java/org/apache/zookeeper/test/ObserverMasterTest.java
+++ b/zookeeper-server/src/test/java/org/apache/zookeeper/test/ObserverMasterTest.java
@@ -55,6 +55,7 @@ import org.apache.zookeeper.ZooKeeper.States;
import org.apache.zookeeper.admin.ZooKeeperAdmin;
import org.apache.zookeeper.jmx.MBeanRegistry;
import org.apache.zookeeper.jmx.ZKMBeanInfo;
+import org.apache.zookeeper.metrics.MetricsUtils;
import org.apache.zookeeper.server.admin.Commands;
import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
import org.apache.zookeeper.server.util.PortForwarder;
@@ -85,6 +86,8 @@ public class ObserverMasterTest extends ObserverMasterTestBase {
assertTrue(ClientBase.waitForServerUp("127.0.0.1:" + CLIENT_PORT_OBS, CONNECTION_TIMEOUT),
"waiting for server 3 being up");
+ validateObserverSyncTimeMetrics();
+
if (testObserverMaster) {
int masterPort = q3.getQuorumPeer().observer.getSocket().getPort();
LOG.info("port {} {}", masterPort, OM_PORT);
@@ -522,4 +525,15 @@ public class ObserverMasterTest extends ObserverMasterTestBase {
}
+ private void validateObserverSyncTimeMetrics() {
+ final String name = "observer_sync_time";
+ final Map<String, Object> metrics = MetricsUtils.currentServerMetrics();
+
+ assertEquals(5, metrics.keySet().stream().filter(key -> key.contains(name)).count());
+ assertNotNull(metrics.get(String.format("avg_%s", name)));
+ assertNotNull(metrics.get(String.format("min_%s", name)));
+ assertNotNull(metrics.get(String.format("max_%s", name)));
+ assertNotNull(metrics.get(String.format("cnt_%s", name)));
+ assertNotNull(metrics.get(String.format("sum_%s", name)));
+ }
}