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

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


The following commit(s) were added to refs/heads/master by this push:
     new 0fd54ac34b Use instance data dir path to compute disk utilization info 
(#15236)
0fd54ac34b is described below

commit 0fd54ac34b22f3ea2146196cc40ed460661a38b6
Author: Ragesh Rajagopalan <ragesh.rajagopa...@gmail.com>
AuthorDate: Wed Mar 12 21:20:23 2025 -0700

    Use instance data dir path to compute disk utilization info (#15236)
---
 .../apache/pinot/core/data/manager/InstanceDataManager.java   |  5 +++++
 .../apache/pinot/server/api/resources/InstanceResource.java   | 11 ++++++++---
 .../pinot/server/starter/helix/HelixInstanceDataManager.java  |  5 +++++
 3 files changed, 18 insertions(+), 3 deletions(-)

diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/data/manager/InstanceDataManager.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/data/manager/InstanceDataManager.java
index ce1258290f..c60000f832 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/data/manager/InstanceDataManager.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/data/manager/InstanceDataManager.java
@@ -202,4 +202,9 @@ public interface InstanceDataManager {
    * Returns consumer directory paths on the instance
    */
   List<File> getConsumerDirPaths();
+
+  /**
+   * Returns the instance data directory
+   */
+  String getInstanceDataDir();
 }
diff --git 
a/pinot-server/src/main/java/org/apache/pinot/server/api/resources/InstanceResource.java
 
b/pinot-server/src/main/java/org/apache/pinot/server/api/resources/InstanceResource.java
index d2a7a0c4f3..a285d074a5 100644
--- 
a/pinot-server/src/main/java/org/apache/pinot/server/api/resources/InstanceResource.java
+++ 
b/pinot-server/src/main/java/org/apache/pinot/server/api/resources/InstanceResource.java
@@ -48,6 +48,7 @@ import 
org.apache.pinot.common.restlet.resources.ResourceUtils;
 import org.apache.pinot.common.utils.config.InstanceUtils;
 import org.apache.pinot.common.utils.helix.HelixHelper;
 import org.apache.pinot.server.api.AdminApiApplication;
+import org.apache.pinot.server.starter.ServerInstance;
 
 import static 
org.apache.pinot.spi.utils.CommonConstants.SWAGGER_AUTHORIZATION_KEY;
 
@@ -67,6 +68,8 @@ public class InstanceResource {
   private String _instanceId;
   @Inject
   private HelixManager _helixManager;
+  @Inject
+  private ServerInstance _serverInstance;
 
   @GET
   @Path("tags")
@@ -110,13 +113,15 @@ public class InstanceResource {
   @ApiOperation(value = "Show disk utilization", notes = "Disk capacity and 
usage shown in bytes")
   @ApiResponses(value = {
       @ApiResponse(code = 200, message = "Success"),
-      @ApiResponse(code = 400, message = "Bad Request – Invalid disk 
utilization path in header")
+      @ApiResponse(code = 500, message = "Internal Server Error – Invalid disk 
utilization path in header")
   })
   public String getDiskUsageInfo(@Context HttpHeaders headers)
       throws WebApplicationException, IOException {
-    String pathStr = headers.getHeaderString("diskUtilizationPath");
+    // Use the instance data directory as the path to compute disk usage. Note 
that the diskUtilizationPath passed in
+    // the header is ignored as of now.
+    String pathStr = 
_serverInstance.getInstanceDataManager().getInstanceDataDir();
     if (StringUtils.isEmpty(pathStr)) {
-      throw new WebApplicationException("Invalid disk utilization path in 
header", 400);
+      throw new WebApplicationException("Disk utilization 
path(instanceDataDir) was null or empty.", 500);
     }
     DiskUsageInfo diskUsageInfo = 
DiskUtilization.computeDiskUsage(_instanceId, pathStr);
     return ResourceUtils.convertToJsonString(diskUsageInfo);
diff --git 
a/pinot-server/src/main/java/org/apache/pinot/server/starter/helix/HelixInstanceDataManager.java
 
b/pinot-server/src/main/java/org/apache/pinot/server/starter/helix/HelixInstanceDataManager.java
index 0b54f34dcc..ee4747f630 100644
--- 
a/pinot-server/src/main/java/org/apache/pinot/server/starter/helix/HelixInstanceDataManager.java
+++ 
b/pinot-server/src/main/java/org/apache/pinot/server/starter/helix/HelixInstanceDataManager.java
@@ -198,6 +198,11 @@ public class HelixInstanceDataManager implements 
InstanceDataManager {
     return consumerDirs;
   }
 
+  @Override
+  public String getInstanceDataDir() {
+    return _instanceDataManagerConfig.getInstanceDataDir();
+  }
+
   @Override
   public String getInstanceId() {
     return _instanceId;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to