This is an automated email from the ASF dual-hosted git repository.

li4wang 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 a8631bd5b ZOOKEEPER-4934: Add metrics for TTL node creation (#2287)
a8631bd5b is described below

commit a8631bd5bcf00189dc3d296d72959f4d2b0d2f6c
Author: Ivan Andika <[email protected]>
AuthorDate: Thu Dec 18 15:16:00 2025 +0800

    ZOOKEEPER-4934: Add metrics for TTL node creation (#2287)
    
    * ZOOKEEPER-4934: Add metrics for TTL node creation
    
    * Trigger CI
---
 .../src/main/java/org/apache/zookeeper/server/DataTree.java           | 1 +
 .../src/main/java/org/apache/zookeeper/server/ServerMetrics.java      | 4 +++-
 .../src/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 a9c69b486..1f93f18c7 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
@@ -486,6 +486,7 @@ public void createNode(final String path, byte[] data, 
List<ACL> 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<String> 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 f9b56f5f0..07d2c1b90 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 940456626..ae37bc6a1 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<String, Object> metrics = MetricsUtils.currentServerMetrics();
+        assertTrue((long) metrics.get("ttl_node_created_count") >= 1);
         assertTrue((long) metrics.get("ttl_node_deleted_count") >= 1);
     }
 

Reply via email to