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]