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

devesh 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 377b67f1631 HDDS-14533. Include filesystem metrics in storage 
Distribution endpoint (#9700)
377b67f1631 is described below

commit 377b67f1631fe81618d2390726849f946f7b1b5b
Author: Priyesh Karatha <[email protected]>
AuthorDate: Wed Feb 4 10:01:25 2026 +0530

    HDDS-14533. Include filesystem metrics in storage Distribution endpoint 
(#9700)
---
 .../ozone/recon/TestStorageDistributionEndpoint.java       | 14 ++++++++------
 .../ozone/recon/api/StorageDistributionEndpoint.java       | 14 ++++++++++----
 2 files changed, 18 insertions(+), 10 deletions(-)

diff --git 
a/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestStorageDistributionEndpoint.java
 
b/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestStorageDistributionEndpoint.java
index ea6894831a7..a7e880a79f7 100644
--- 
a/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestStorageDistributionEndpoint.java
+++ 
b/hadoop-ozone/integration-test-recon/src/test/java/org/apache/hadoop/ozone/recon/TestStorageDistributionEndpoint.java
@@ -223,12 +223,14 @@ private boolean 
verifyStorageDistributionAfterKeyCreation() {
       for (DatanodeStorageReport report : reports) {
         for (HddsProtos.DatanodeUsageInfoProto scmReport : scmReports) {
           if (scmReport.getNode().getUuid().equals(report.getDatanodeUuid())) {
-            assertEquals(report.getMinimumFreeSpace(), 
scmReport.getFreeSpaceToSpare());
-            assertEquals(report.getReserved(), scmReport.getReserved());
-            assertEquals(report.getCapacity(), scmReport.getCapacity());
-            assertEquals(report.getRemaining(), scmReport.getRemaining());
-            assertEquals(report.getUsed(), scmReport.getUsed());
-            assertEquals(report.getCommitted(), scmReport.getCommitted());
+            assertEquals(scmReport.getFreeSpaceToSpare(), 
report.getMinimumFreeSpace());
+            assertEquals(scmReport.getReserved(), report.getReserved());
+            assertEquals(scmReport.getCapacity(), report.getCapacity());
+            assertEquals(scmReport.getRemaining(), report.getRemaining());
+            assertEquals(scmReport.getUsed(), report.getUsed());
+            assertEquals(scmReport.getCommitted(), report.getCommitted());
+            assertEquals(scmReport.getFsAvailable(), 
report.getFilesystemAvailable());
+            assertEquals(scmReport.getFsCapacity(), 
report.getFilesystemCapacity());
           }
         }
       }
diff --git 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/StorageDistributionEndpoint.java
 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/StorageDistributionEndpoint.java
index 96cf36fff31..e5ae2550475 100644
--- 
a/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/StorageDistributionEndpoint.java
+++ 
b/hadoop-ozone/recon/src/main/java/org/apache/hadoop/ozone/recon/api/StorageDistributionEndpoint.java
@@ -31,6 +31,7 @@
 import javax.ws.rs.Path;
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.Response;
+import org.apache.hadoop.hdds.fs.SpaceUsageSource;
 import org.apache.hadoop.hdds.protocol.DatanodeDetails;
 import org.apache.hadoop.hdds.scm.container.placement.metrics.SCMNodeMetric;
 import org.apache.hadoop.hdds.scm.container.placement.metrics.SCMNodeStat;
@@ -238,8 +239,8 @@ private DatanodeStorageReport 
getStorageReport(DatanodeDetails datanode) {
       long committed = nodeStat.getCommitted() != null ? 
nodeStat.getCommitted().get() : 0L;
       long minFreeSpace  = nodeStat.getFreeSpaceToSpare() != null ? 
nodeStat.getFreeSpaceToSpare().get() : 0L;
       long reservedSpace = nodeStat.getReserved() != null ? 
nodeStat.getReserved().get() : 0L;
-
-      return DatanodeStorageReport.newBuilder()
+      SpaceUsageSource.Fixed fsUsage = 
nodeManager.getTotalFilesystemUsage(datanode);
+      DatanodeStorageReport.Builder builder = 
DatanodeStorageReport.newBuilder()
           .setCapacity(capacity)
           .setUsed(used)
           .setRemaining(remaining)
@@ -247,8 +248,13 @@ private DatanodeStorageReport 
getStorageReport(DatanodeDetails datanode) {
           .setMinimumFreeSpace(minFreeSpace)
           .setReserved(reservedSpace)
           .setDatanodeUuid(datanode.getUuidString())
-          .setHostName(datanode.getHostName())
-          .build();
+          .setHostName(datanode.getHostName());
+      if (fsUsage != null) {
+        builder.setFilesystemCapacity(fsUsage.getCapacity())
+            .setFilesystemAvailable(fsUsage.getAvailable())
+            .setFilesystemUsed(fsUsage.getUsedSpace());
+      }
+      return builder.build();
     } catch (Exception e) {
       LOG.error("Error getting storage report for datanode: {}", datanode, e);
       return null; // Return null on any error


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

Reply via email to