in bigtop-manager-server/src/main/java/org/apache/bigtop/manager/server/proxy/PrometheusProxy.java [315:357]
public JsonNode retrieveAgentCpu(String iPv4addr, String interval) {
String params = String.format("agent_host_monitoring_cpu{iPv4addr=\"%s\"}", iPv4addr);
ArrayList<Long> timeStampsList = ProxyUtils.getTimeStampsList(ProxyUtils.processInternal(interval));
JsonNode result = queryRange(
params,
timeStampsList.get(timeStampsList.size() - 1),
timeStampsList.get(0),
ProxyUtils.Number2Param(ProxyUtils.processInternal(interval))); // end start
ObjectMapper objectMapper = new ObjectMapper();
if (result != null) {
JsonNode agentCpu = result.get("data").get("result");
if (agentCpu.isArray() && !agentCpu.isEmpty()) {
ObjectNode agentCpuInfo = objectMapper.createObjectNode();
// metric
JsonNode agentCpuMetrics = agentCpu.get(0).get("metric");
agentCpuInfo.put("hostname", agentCpuMetrics.get("hostname").asText());
agentCpuInfo.put("cpuInfo", agentCpuMetrics.get("cpu_info").asText());
agentCpuInfo.put("iPv4addr", agentCpuMetrics.get("iPv4addr").asText());
agentCpuInfo.put("os", agentCpuMetrics.get("os").asText());
agentCpuInfo.put("architecture", agentCpuMetrics.get("arch").asText());
agentCpuInfo.put(
PHYSICAL_CORES, agentCpuMetrics.get(PHYSICAL_CORES).asInt());
agentCpuInfo.put(
FILE_OPEN_DESCRIPTOR,
agentCpuMetrics.get(FILE_OPEN_DESCRIPTOR).asLong());
agentCpuInfo.put(
FILE_TOTAL_DESCRIPTOR,
agentCpuMetrics.get(FILE_TOTAL_DESCRIPTOR).asLong());
// value
for (JsonNode cpuType : agentCpu) {
JsonNode agentCpuValues = cpuType.get("values");
ArrayNode cpuValues = objectMapper.createArrayNode();
for (JsonNode stepValue : agentCpuValues) {
cpuValues.add(stepValue.get(1).asDouble());
}
agentCpuInfo.set(cpuType.get("metric").get("cpuUsage").asText(), cpuValues);
}
return agentCpuInfo;
}
}
return objectMapper.createObjectNode();
}