From ee132fbaa0c3aaadfc3b4186670387c528cf8636 Mon Sep 17 00:00:00 2001 From: Ivan Andika Date: Thu, 31 Jul 2025 13:23:45 +0800 Subject: [PATCH 1/2] ZOOKEEPER-4934: Add metrics for TTL node creation --- .../src/main/java/org/apache/zookeeper/server/DataTree.java | 1 + .../main/java/org/apache/zookeeper/server/ServerMetrics.java | 4 +++- .../test/java/org/apache/zookeeper/server/CreateTTLTest.java | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java b/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java index d017427a422..4d40dc29001 100644 --- a/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java +++ b/zookeeper-server/src/main/java/org/apache/zookeeper/server/DataTree.java @@ -492,6 +492,7 @@ public void createNode(final String path, byte[] data, List acl, long ephem containers.add(path); } else if (ephemeralType == EphemeralType.TTL) { ttls.add(path); + ServerMetrics.getMetrics().TTL_NODE_CREATED_COUNT.add(1); } else if (ephemeralOwner != 0) { HashSet list = ephemerals.computeIfAbsent(ephemeralOwner, k -> new HashSet<>()); synchronized (list) { 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 f9b56f5f084..07d2c1b904a 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 @@ -271,6 +271,7 @@ private ServerMetrics(MetricsProvider metricsProvider) { QUOTA_EXCEEDED_ERROR_PER_NAMESPACE = metricsContext.getCounterSet(QuotaMetricsUtils.QUOTA_EXCEEDED_ERROR_PER_NAMESPACE); TTL_NODE_DELETED_COUNT = metricsContext.getCounter("ttl_node_deleted_count"); + TTL_NODE_CREATED_COUNT = metricsContext.getCounter("ttl_node_created_count"); } /** @@ -550,9 +551,10 @@ private ServerMetrics(MetricsProvider metricsProvider) { public final CounterSet QUOTA_EXCEEDED_ERROR_PER_NAMESPACE; /** - * Count of deleted TTL nodes + * Count of created and deleted TTL nodes */ public final Counter TTL_NODE_DELETED_COUNT; + public final Counter TTL_NODE_CREATED_COUNT; private final MetricsProvider metricsProvider; diff --git a/zookeeper-server/src/test/java/org/apache/zookeeper/server/CreateTTLTest.java b/zookeeper-server/src/test/java/org/apache/zookeeper/server/CreateTTLTest.java index 94045662681..ae37bc6a1d3 100644 --- a/zookeeper-server/src/test/java/org/apache/zookeeper/server/CreateTTLTest.java +++ b/zookeeper-server/src/test/java/org/apache/zookeeper/server/CreateTTLTest.java @@ -95,8 +95,9 @@ public void testCreate() throws KeeperException, InterruptedException { containerManager.checkContainers(); assertNull(zk.exists("/foo", false), "Ttl node should have been deleted"); - // validate deleted TTL nodes count + // validate created and deleted TTL nodes count Map metrics = MetricsUtils.currentServerMetrics(); + assertTrue((long) metrics.get("ttl_node_created_count") >= 1); assertTrue((long) metrics.get("ttl_node_deleted_count") >= 1); } From bc0937f991b4ed1eef5c918aa7a0b41c5c625f73 Mon Sep 17 00:00:00 2001 From: Ivan Andika Date: Thu, 31 Jul 2025 13:25:24 +0800 Subject: [PATCH 2/2] Trigger CI