You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by sa...@apache.org on 2026/10/09 09:36:49 UTC

(ozone) branch master updated: HDDS-16719. Use MutableGaugeLong for snapshot and tenant counts in OMMetrics (#11445)

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

sarvekshayr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 8ebb28524fb HDDS-16719. Use MutableGaugeLong for snapshot and tenant counts in OMMetrics (#11445)
8ebb28524fb is described below

commit 8ebb28524fb8d491c736ddb89b15d84d432f7660
Author: Chi-Hsuan Huang <ch...@gmail.com>
AuthorDate: Fri Oct 9 17:36:42 2026 +0800

    HDDS-16719. Use MutableGaugeLong for snapshot and tenant counts in OMMetrics (#11445)
---
 .../org/apache/hadoop/ozone/om/TestOmMetrics.java  | 22 +++++++++++-----------
 .../java/org/apache/hadoop/ozone/om/OMMetrics.java | 16 +++++++---------
 .../hadoop/ozone/om/TestOMMetricsSetters.java      | 19 +++++++++++++++++++
 3 files changed, 37 insertions(+), 20 deletions(-)

diff --git a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmMetrics.java b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmMetrics.java
index 7ca715d7d26..5b5e73f857f 100644
--- a/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmMetrics.java
+++ b/hadoop-ozone/integration-test/src/test/java/org/apache/hadoop/ozone/om/TestOmMetrics.java
@@ -574,8 +574,8 @@ public void testSnapshotOps() throws Exception {
     long initialNumSnapshotInfos = getLongCounter("NumSnapshotInfos", omMetrics);
     long initialNumSnapshotListFails = getLongCounter("NumSnapshotListFails", omMetrics);
     long initialNumSnapshotLists = getLongCounter("NumSnapshotLists", omMetrics);
-    long initialNumSnapshotActive = getLongCounter("NumSnapshotActive", omMetrics);
-    long initialNumSnapshotDeleted = getLongCounter("NumSnapshotDeleted", omMetrics);
+    long initialNumSnapshotActive = getLongGauge("NumSnapshotActive", omMetrics);
+    long initialNumSnapshotDeleted = getLongGauge("NumSnapshotDeleted", omMetrics);
     long initialNumSnapshotDeletes = getLongCounter("NumSnapshotDeletes", omMetrics);
     long initialNumSnapshotDeleteFails = getLongCounter("NumSnapshotDeleteFails", omMetrics);
     long initialNumSnapshotDiffJobs = getLongCounter("NumSnapshotDiffJobs", omMetrics);
@@ -611,8 +611,8 @@ public void testSnapshotOps() throws Exception {
     assertEquals(initialNumSnapshotCreates + 1, getLongCounter("NumSnapshotCreates", omMetrics));
     assertEquals(initialNumSnapshotListFails, getLongCounter("NumSnapshotListFails", omMetrics));
     assertEquals(initialNumSnapshotLists, getLongCounter("NumSnapshotLists", omMetrics));
-    assertEquals(initialNumSnapshotActive + 1, getLongCounter("NumSnapshotActive", omMetrics));
-    assertEquals(initialNumSnapshotDeleted, getLongCounter("NumSnapshotDeleted", omMetrics));
+    assertEquals(initialNumSnapshotActive + 1, getLongGauge("NumSnapshotActive", omMetrics));
+    assertEquals(initialNumSnapshotDeleted, getLongGauge("NumSnapshotDeleted", omMetrics));
     assertEquals(initialNumSnapshotDiffJobs, getLongCounter("NumSnapshotDiffJobs", omMetrics));
     assertEquals(initialNumSnapshotDiffJobFails, getLongCounter("NumSnapshotDiffJobFails", omMetrics));
 
@@ -688,7 +688,7 @@ public void testSnapshotOps() throws Exception {
         volumeName, bucketName, null, null, Integer.MAX_VALUE);
 
     omMetrics = getMetrics("OMMetrics");
-    assertEquals(initialNumSnapshotActive + 2, getLongCounter("NumSnapshotActive", omMetrics));
+    assertEquals(initialNumSnapshotActive + 2, getLongGauge("NumSnapshotActive", omMetrics));
     assertEquals(initialNumSnapshotCreates + 2, getLongCounter("NumSnapshotCreates", omMetrics));
     assertEquals(initialNumSnapshotListFails, getLongCounter("NumSnapshotListFails", omMetrics));
     assertEquals(initialNumSnapshotLists + 1, getLongCounter("NumSnapshotLists", omMetrics));
@@ -704,7 +704,7 @@ public void testSnapshotOps() throws Exception {
     writeClient.renameSnapshot(volumeName, bucketName, snapshot2, snapshot3);
 
     omMetrics = getMetrics("OMMetrics");
-    assertEquals(initialNumSnapshotActive + 2, getLongCounter("NumSnapshotActive", omMetrics));
+    assertEquals(initialNumSnapshotActive + 2, getLongGauge("NumSnapshotActive", omMetrics));
     assertEquals(initialNumSnapshotRenames + 1, getLongCounter("NumSnapshotRenames", omMetrics));
     assertEquals(initialNumSnapshotRenameFails, getLongCounter("NumSnapshotRenameFails", omMetrics));
 
@@ -712,7 +712,7 @@ public void testSnapshotOps() throws Exception {
     assertThrows(OMException.class, () -> writeClient.renameSnapshot(volumeName,
         bucketName, snapshot2, snapshot3));
     omMetrics = getMetrics("OMMetrics");
-    assertEquals(initialNumSnapshotActive + 2, getLongCounter("NumSnapshotActive", omMetrics));
+    assertEquals(initialNumSnapshotActive + 2, getLongGauge("NumSnapshotActive", omMetrics));
     assertEquals(initialNumSnapshotRenames + 2, getLongCounter("NumSnapshotRenames", omMetrics));
     assertEquals(initialNumSnapshotRenameFails + 1, getLongCounter("NumSnapshotRenameFails", omMetrics));
 
@@ -720,18 +720,18 @@ public void testSnapshotOps() throws Exception {
     writeClient.deleteSnapshot(volumeName, bucketName, snapshot3);
 
     omMetrics = getMetrics("OMMetrics");
-    assertEquals(initialNumSnapshotActive + 1, getLongCounter("NumSnapshotActive", omMetrics));
+    assertEquals(initialNumSnapshotActive + 1, getLongGauge("NumSnapshotActive", omMetrics));
     assertEquals(initialNumSnapshotDeletes + 1, getLongCounter("NumSnapshotDeletes", omMetrics));
-    assertEquals(initialNumSnapshotDeleted + 1, getLongCounter("NumSnapshotDeleted", omMetrics));
+    assertEquals(initialNumSnapshotDeleted + 1, getLongGauge("NumSnapshotDeleted", omMetrics));
     assertEquals(initialNumSnapshotDeleteFails, getLongCounter("NumSnapshotDeleteFails", omMetrics));
 
     // Delete snapshot: invalid snapshot case.
     assertThrows(OMException.class, () -> writeClient.deleteSnapshot(volumeName,
         bucketName, snapshot3));
     omMetrics = getMetrics("OMMetrics");
-    assertEquals(initialNumSnapshotActive + 1, getLongCounter("NumSnapshotActive", omMetrics));
+    assertEquals(initialNumSnapshotActive + 1, getLongGauge("NumSnapshotActive", omMetrics));
     assertEquals(initialNumSnapshotDeletes + 2, getLongCounter("NumSnapshotDeletes", omMetrics));
-    assertEquals(initialNumSnapshotDeleted + 1, getLongCounter("NumSnapshotDeleted", omMetrics));
+    assertEquals(initialNumSnapshotDeleted + 1, getLongGauge("NumSnapshotDeleted", omMetrics));
     assertEquals(initialNumSnapshotDeleteFails + 1, getLongCounter("NumSnapshotDeleteFails", omMetrics));
   }
 
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMMetrics.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMMetrics.java
index ac8b7ebac5b..5b2bc2b32ae 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMMetrics.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OMMetrics.java
@@ -169,13 +169,13 @@ public class OMMetrics implements OmMetadataReaderMetrics {
   private @Metric MutableCounterLong numCancelSnapshotDiffFails;
   private @Metric MutableCounterLong numListSnapshotDiffJobFails;
 
-  private @Metric MutableCounterLong numSnapshotActive;
-  private @Metric MutableCounterLong numSnapshotDeleted;
+  private @Metric MutableGaugeLong numSnapshotActive;
+  private @Metric MutableGaugeLong numSnapshotDeleted;
 
   // Number of tenant operations attempted
   private @Metric MutableCounterLong numTenantOps;
   // Metrics for a total number of tenants
-  private @Metric MutableCounterLong numTenants;
+  private @Metric MutableGaugeLong numTenants;
   // Metrics for tenant create operation
   private @Metric MutableCounterLong numTenantCreates;
   private @Metric MutableCounterLong numTenantCreateFails;
@@ -590,8 +590,7 @@ public void incNumSnapshotInfoFails() {
   }
 
   public void setNumSnapshotActive(long num) {
-    long currVal = numSnapshotActive.value();
-    numSnapshotActive.incr(num - currVal);
+    numSnapshotActive.set(num);
   }
 
   public void incNumSnapshotActive() {
@@ -599,12 +598,11 @@ public void incNumSnapshotActive() {
   }
 
   public void decNumSnapshotActive() {
-    numSnapshotActive.incr(-1);
+    numSnapshotActive.decr();
   }
 
   public void setNumSnapshotDeleted(long num) {
-    long currVal = numSnapshotDeleted.value();
-    numSnapshotDeleted.incr(num - currVal);
+    numSnapshotDeleted.set(num);
   }
 
   public void incNumSnapshotDeleted() {
@@ -667,7 +665,7 @@ public void incNumTenants() {
   }
 
   public void decNumTenants() {
-    numTenants.incr(-1);
+    numTenants.decr();
   }
 
   public void incNumTenantCreates() {
diff --git a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestOMMetricsSetters.java b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestOMMetricsSetters.java
index c5b3db104d2..53c3d57b744 100644
--- a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestOMMetricsSetters.java
+++ b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/TestOMMetricsSetters.java
@@ -55,4 +55,23 @@ public void testSetTotals() {
     assertGauge("NumDirs", 4L, rb);
     assertGauge("NumFiles", 5L, rb);
   }
+
+  @Test
+  public void testSnapshotAndTenantCounts() {
+    metrics = OMMetrics.create(new OzoneConfiguration());
+    metrics.setNumSnapshotActive(5);
+    metrics.setNumSnapshotActive(3);
+    metrics.decNumSnapshotActive();
+    metrics.setNumSnapshotDeleted(1);
+    metrics.setNumSnapshotDeleted(4);
+    metrics.setNumSnapshotDeleted(2);
+    metrics.incNumTenants();
+    metrics.incNumTenants();
+    metrics.decNumTenants();
+
+    MetricsRecordBuilder rb = getMetrics("OMMetrics");
+    assertGauge("NumSnapshotActive", 2L, rb);
+    assertGauge("NumSnapshotDeleted", 2L, rb);
+    assertGauge("NumTenants", 1L, rb);
+  }
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org