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

hemant 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 531c45f767 HDDS-8641. Removed numSnapshotReclaimed metric and added 
missing getter for snapshot metrics. (#5361)
531c45f767 is described below

commit 531c45f767e4da38d1e31a0dc978368c9fe6a0d6
Author: Hemant Kumar <[email protected]>
AuthorDate: Mon Oct 2 11:06:20 2023 -0700

    HDDS-8641. Removed numSnapshotReclaimed metric and added missing getter for 
snapshot metrics. (#5361)
---
 .../org/apache/hadoop/ozone/om/TestOmMetrics.java  | 19 ++++++++-
 .../java/org/apache/hadoop/ozone/om/OMMetrics.java | 45 +++++++++++++---------
 .../org/apache/hadoop/ozone/om/OzoneManager.java   | 13 ++-----
 .../ozone/om/snapshot/SnapshotDiffManager.java     |  2 +
 .../snapshot/TestOMSnapshotDeleteRequest.java      |  6 ++-
 .../ozone/om/snapshot/TestSnapshotDiffManager.java |  3 ++
 6 files changed, 59 insertions(+), 29 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 82bd6f1807..f63581ab7e 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
@@ -64,6 +64,7 @@ import 
org.apache.hadoop.ozone.om.protocol.OzoneManagerProtocol;
 import org.apache.hadoop.ozone.security.acl.IAccessAuthorizer;
 import org.apache.hadoop.ozone.security.acl.OzoneObj;
 import org.apache.hadoop.ozone.security.acl.OzoneObjInfo;
+import org.apache.hadoop.ozone.snapshot.SnapshotDiffResponse;
 import org.assertj.core.util.Lists;
 import org.junit.After;
 import org.junit.Before;
@@ -424,7 +425,8 @@ public class TestOmMetrics {
     assertCounter("NumSnapshotLists", 0L, omMetrics);
     assertCounter("NumSnapshotActive", 1L, omMetrics);
     assertCounter("NumSnapshotDeleted", 0L, omMetrics);
-    assertCounter("NumSnapshotReclaimed", 0L, omMetrics);
+    assertCounter("NumSnapshotDiffJobs", 0L, omMetrics);
+    assertCounter("NumSnapshotDiffJobFails", 0L, omMetrics);
 
     // Create second key
     OmKeyArgs keyArgs2 = createKeyArgs(volumeName, bucketName,
@@ -435,6 +437,21 @@ public class TestOmMetrics {
     // Create second snapshot
     writeClient.createSnapshot(volumeName, bucketName, snapshot2);
 
+    // Snapshot diff
+    while (true) {
+      SnapshotDiffResponse response =
+          writeClient.snapshotDiff(volumeName, bucketName, snapshot1, 
snapshot2,
+              null, 100, false, false);
+      if (response.getJobStatus() == SnapshotDiffResponse.JobStatus.DONE) {
+        break;
+      } else {
+        Thread.sleep(response.getWaitTimeInMs());
+      }
+    }
+    omMetrics = getMetrics("OMMetrics");
+    assertCounter("NumSnapshotDiffJobs", 1L, omMetrics);
+    assertCounter("NumSnapshotDiffJobFails", 0L, omMetrics);
+
     // List snapshots
     writeClient.listSnapshot(
         volumeName, bucketName, null, null, Integer.MAX_VALUE);
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 4a15a43ffb..97445c0ec2 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
@@ -72,6 +72,7 @@ public class OMMetrics implements OmMetadataReaderMetrics {
   private @Metric MutableCounterLong numSnapshotCreates;
   private @Metric MutableCounterLong numSnapshotDeletes;
   private @Metric MutableCounterLong numSnapshotLists;
+  private @Metric MutableCounterLong numSnapshotDiffJobs;
 
   private @Metric MutableCounterLong numGetFileStatus;
   private @Metric MutableCounterLong numCreateDirectory;
@@ -126,9 +127,10 @@ public class OMMetrics implements OmMetadataReaderMetrics {
   private @Metric MutableCounterLong numSnapshotCreateFails;
   private @Metric MutableCounterLong numSnapshotDeleteFails;
   private @Metric MutableCounterLong numSnapshotListFails;
+  private @Metric MutableCounterLong numSnapshotDiffJobFails;
+
   private @Metric MutableCounterLong numSnapshotActive;
   private @Metric MutableCounterLong numSnapshotDeleted;
-  private @Metric MutableCounterLong numSnapshotReclaimed;
 
   // Number of tenant operations attempted
   private @Metric MutableCounterLong numTenantOps;
@@ -465,10 +467,18 @@ public class OMMetrics implements OmMetadataReaderMetrics 
{
     numSnapshotLists.incr();
   }
 
+  public void incNumSnapshotDiffJobs() {
+    numSnapshotDiffJobs.incr();
+  }
+
   public void incNumSnapshotListFails() {
     numSnapshotListFails.incr();
   }
 
+  public void incNumSnapshotDiffJobFails() {
+    numSnapshotDiffJobFails.incr();
+  }
+
   public void setNumSnapshotActive(long num) {
     long currVal = numSnapshotActive.value();
     numSnapshotActive.incr(num - currVal);
@@ -495,19 +505,6 @@ public class OMMetrics implements OmMetadataReaderMetrics {
     numSnapshotDeleted.incr(-1);
   }
 
-  public void setNumSnapshotReclaimed(long num) {
-    long currVal = numSnapshotReclaimed.value();
-    numSnapshotReclaimed.incr(num - currVal);
-  }
-
-  public void incNumSnapshotReclaimed() {
-    numSnapshotReclaimed.incr();
-  }
-
-  public void decNumSnapshotReclaimed() {
-    numSnapshotReclaimed.incr(-1);
-  }
-
   public void incNumCompleteMultipartUploadFails() {
     numCompleteMultipartUploadFails.incr();
   }
@@ -1221,18 +1218,34 @@ public class OMMetrics implements 
OmMetadataReaderMetrics {
     return numSnapshotCreates.value();
   }
 
+  public long getNumSnapshotDeletes() {
+    return numSnapshotDeletes.value();
+  }
+
   public long getNumSnapshotLists() {
     return numSnapshotLists.value();
   }
 
+  public long getNumSnapshotDiffJobs() {
+    return numSnapshotDiffJobs.value();
+  }
+
   public long getNumSnapshotCreateFails() {
     return numSnapshotCreateFails.value();
   }
 
+  public long getNumSnapshotDeleteFails() {
+    return numSnapshotDeleteFails.value();
+  }
+
   public long getNumSnapshotListFails() {
     return numSnapshotListFails.value();
   }
 
+  public long getNumSnapshotDiffJobFails() {
+    return numSnapshotDiffJobFails.value();
+  }
+
   public long getNumSnapshotActive() {
     return numSnapshotActive.value();
   }
@@ -1241,10 +1254,6 @@ public class OMMetrics implements 
OmMetadataReaderMetrics {
     return numSnapshotDeleted.value();
   }
 
-  public long getNumSnapshotReclaimed() {
-    return numSnapshotReclaimed.value();
-  }
-
 
   public void incNumTrashRenames() {
     numTrashRenames.incr();
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
index e627d97bc6..31e3abebb6 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
@@ -1788,7 +1788,6 @@ public final class OzoneManager extends 
ServiceRuntimeInfoImpl
 
     long activeGauge = 0;
     long deletedGauge = 0;
-    long reclaimedGauge = 0;
 
     try (TableIterator<String, ? extends
         KeyValue<String, SnapshotInfo>> keyIter =
@@ -1805,20 +1804,16 @@ public final class OzoneManager extends 
ServiceRuntimeInfoImpl
         } else if (snapshotStatus ==
             SnapshotInfo.SnapshotStatus.SNAPSHOT_DELETED) {
           deletedGauge++;
-        } else if (snapshotStatus ==
-            SnapshotInfo.SnapshotStatus.SNAPSHOT_RECLAIMED) {
-          reclaimedGauge++;
         }
       }
     }
 
     metrics.setNumSnapshotActive(activeGauge);
     metrics.setNumSnapshotDeleted(deletedGauge);
-    metrics.setNumSnapshotReclaimed(reclaimedGauge);
   }
 
   private void checkConfigBeforeBootstrap() throws IOException {
-    List<OMNodeDetails> omsWihtoutNewConfig = new ArrayList<>();
+    List<OMNodeDetails> omsWithoutNewConfig = new ArrayList<>();
     for (Map.Entry<String, OMNodeDetails> entry : peerNodesMap.entrySet()) {
       String remoteNodeId = entry.getKey();
       OMNodeDetails remoteNodeDetails = entry.getValue();
@@ -1831,11 +1826,11 @@ public final class OzoneManager extends 
ServiceRuntimeInfoImpl
         checkRemoteOMConfig(remoteNodeId, remoteOMConfiguration);
       } catch (IOException ioe) {
         LOG.error("Remote OM config check failed on OM {}", remoteNodeId, ioe);
-        omsWihtoutNewConfig.add(remoteNodeDetails);
+        omsWithoutNewConfig.add(remoteNodeDetails);
       }
     }
-    if (!omsWihtoutNewConfig.isEmpty()) {
-      String errorMsg = 
OmUtils.getOMAddressListPrintString(omsWihtoutNewConfig)
+    if (!omsWithoutNewConfig.isEmpty()) {
+      String errorMsg = 
OmUtils.getOMAddressListPrintString(omsWithoutNewConfig)
           + " do not have or have incorrect information of the bootstrapping " 
+
           "OM. Update their ozone-site.xml before proceeding.";
       exitManager.exitSystem(1, errorMsg, LOG);
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/snapshot/SnapshotDiffManager.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/snapshot/SnapshotDiffManager.java
index 9e82b11413..925881341d 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/snapshot/SnapshotDiffManager.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/snapshot/SnapshotDiffManager.java
@@ -835,6 +835,7 @@ public class SnapshotDiffManager implements AutoCloseable {
     LOG.info("Started snap diff report generation for volume: '{}', " +
             "bucket: '{}', fromSnapshot: '{}', toSnapshot: '{}'",
         volumeName, bucketName, fromSnapshotName, toSnapshotName);
+    ozoneManager.getMetrics().incNumSnapshotDiffJobs();
 
     ColumnFamilyHandle fromSnapshotColumnFamily = null;
     ColumnFamilyHandle toSnapshotColumnFamily = null;
@@ -1601,6 +1602,7 @@ public class SnapshotDiffManager implements AutoCloseable 
{
       // TODO: [Snapshot] Revisit this when we have proper exception handling.
       snapshotDiffJob.setReason("Job failed due to unknown reason.");
     }
+    ozoneManager.getMetrics().incNumSnapshotDiffJobFails();
     snapDiffJobTable.put(jobKey, snapshotDiffJob);
   }
 
diff --git 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/snapshot/TestOMSnapshotDeleteRequest.java
 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/snapshot/TestOMSnapshotDeleteRequest.java
index 0c53e3fab6..b4a6118f7c 100644
--- 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/snapshot/TestOMSnapshotDeleteRequest.java
+++ 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/request/snapshot/TestOMSnapshotDeleteRequest.java
@@ -217,10 +217,11 @@ public class TestOMSnapshotDeleteRequest {
     snapshotInfo = omMetadataManager.getSnapshotInfoTable().get(key);
     assertNotNull(snapshotInfo);
     assertEquals(SNAPSHOT_DELETED, snapshotInfo.getSnapshotStatus());
-    // Expected -1 because no snapshot was created before.
     assertEquals(0, omMetrics.getNumSnapshotCreates());
+    // Expected -1 because no snapshot was created before.
     assertEquals(-1, omMetrics.getNumSnapshotActive());
     assertEquals(1, omMetrics.getNumSnapshotDeleted());
+    assertEquals(0, omMetrics.getNumSnapshotDeleteFails());
   }
 
   /**
@@ -246,6 +247,8 @@ public class TestOMSnapshotDeleteRequest {
     assertNotNull(omResponse.getDeleteSnapshotResponse());
     assertEquals(Status.FILE_NOT_FOUND, omResponse.getStatus());
     assertEquals(0, omMetrics.getNumSnapshotActive());
+    assertEquals(0, omMetrics.getNumSnapshotDeleted());
+    assertEquals(1, omMetrics.getNumSnapshotDeleteFails());
   }
 
   /**
@@ -312,6 +315,7 @@ public class TestOMSnapshotDeleteRequest {
     assertNotNull(snapshotInfo);
     assertEquals(SNAPSHOT_DELETED, snapshotInfo.getSnapshotStatus());
     assertEquals(0, omMetrics.getNumSnapshotActive());
+    assertEquals(1, omMetrics.getNumSnapshotDeleteFails());
   }
 
   private OMSnapshotDeleteRequest doPreExecute(
diff --git 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestSnapshotDiffManager.java
 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestSnapshotDiffManager.java
index 72004fd191..d6dc2551e4 100644
--- 
a/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestSnapshotDiffManager.java
+++ 
b/hadoop-ozone/ozone-manager/src/test/java/org/apache/hadoop/ozone/om/snapshot/TestSnapshotDiffManager.java
@@ -43,6 +43,7 @@ import org.apache.hadoop.hdfs.protocol.SnapshotDiffReport;
 import org.apache.hadoop.hdfs.protocol.SnapshotDiffReport.DiffReportEntry;
 import org.apache.hadoop.ozone.om.IOmMetadataReader;
 import org.apache.hadoop.ozone.om.OMMetadataManager;
+import org.apache.hadoop.ozone.om.OMMetrics;
 import org.apache.hadoop.ozone.om.OmMetadataManagerImpl;
 import org.apache.hadoop.ozone.om.OmSnapshot;
 import org.apache.hadoop.ozone.om.OmSnapshotManager;
@@ -200,6 +201,7 @@ public class TestSnapshotDiffManager {
   private final List<String> snapshotNames = new ArrayList<>();
   private final List<SnapshotInfo> snapshotInfoList = new ArrayList<>();
   private final List<SnapshotDiffJob> snapDiffJobs = new ArrayList<>();
+  private final OMMetrics omMetrics = OMMetrics.create();
   @TempDir
   private File dbDir;
   @Mock
@@ -368,6 +370,7 @@ public class TestSnapshotDiffManager {
     when(omMetadataManager.getBucketKey(VOLUME_NAME, BUCKET_NAME))
         .thenReturn(bucketTableKey);
     when(omMetadataManager.getKeyTable(LEGACY)).thenReturn(keyInfoTable);
+    when(ozoneManager.getMetrics()).thenReturn(omMetrics);
     when(ozoneManager.getConfiguration()).thenReturn(configuration);
     when(ozoneManager.getMetadataManager()).thenReturn(omMetadataManager);
 


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to