in karavan-web/karavan-app/src/main/java/org/apache/camel/karavan/docker/DockerServiceUtils.java [202:228]
protected String formatCpu(String containerName, Statistics stats) {
try {
double cpuUsage = 0;
long previousCpu = previousStats.containsKey(containerName) ? previousStats.get(containerName).getItem1() : -1;
long previousSystem = previousStats.containsKey(containerName) ? previousStats.get(containerName).getItem2() : -1;
CpuStatsConfig cpuStats = stats.getCpuStats();
if (cpuStats != null) {
CpuUsageConfig cpuUsageConfig = cpuStats.getCpuUsage();
long systemUsage = cpuStats.getSystemCpuUsage();
long totalUsage = cpuUsageConfig.getTotalUsage();
if (previousCpu != -1 && previousSystem != -1) {
float cpuDelta = totalUsage - previousCpu;
float systemDelta = systemUsage - previousSystem;
if (cpuDelta > 0 && systemDelta > 0) {
cpuUsage = cpuDelta / systemDelta * cpuStats.getOnlineCpus() * 100;
}
}
previousStats.put(containerName, Tuple2.of(totalUsage, systemUsage));
}
return formatCpu.format(cpuUsage) + "%";
} catch (Exception e) {
return "";
}
}