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