public JsonNode retrieveAgentDisk()

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();
    }