in bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/proxy/PrometheusProxy.java [423:451]
public JsonNode retrieveAgentDisk(String iPv4addr) {
String params = String.format("agent_host_monitoring_disk{iPv4addr=\"%s\"}", iPv4addr);
JsonNode result = query(params);
ObjectMapper objectMapper = new ObjectMapper();
if (result != null) {
JsonNode agentDisksResult = result.get("data").get("result");
if (agentDisksResult.isArray() && !agentDisksResult.isEmpty()) {
ObjectNode agentDiskInfo = objectMapper.createObjectNode();
// metric
JsonNode agentDisksMetric = agentDisksResult.get(0).get("metric");
agentDiskInfo.put("hostname", agentDisksMetric.get("hostname").asText());
agentDiskInfo.put("iPv4addr", agentDisksMetric.get("iPv4addr").asText());
// value
Long diskTotalSpace = 0L, diskFreeSpace = 0L;
for (JsonNode disk : agentDisksResult) {
if (Objects.equals(disk.get("metric").get("diskUsage").asText(), DISK_IDLE)) {
diskFreeSpace += disk.get("value").get(1).asLong();
} else {
diskTotalSpace += disk.get("value").get(1).asLong();
}
}
agentDiskInfo.put(DISK_TOTAL, diskTotalSpace);
agentDiskInfo.put(DISK_IDLE, diskFreeSpace);
return agentDiskInfo;
}
}
return objectMapper.createObjectNode();
}