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 <[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]