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