diff --git a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/perfcounter/OshiPerformanceCounter.java b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/perfcounter/OshiPerformanceCounter.java index 09c2683ca7e..fa86313459e 100644 --- a/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/perfcounter/OshiPerformanceCounter.java +++ b/agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/perfcounter/OshiPerformanceCounter.java @@ -125,8 +125,13 @@ private static long getProcessBytesLinux(int processId) { private static long getTotalProcessorMillis(CentralProcessor processor) { long[] systemCpuLoadTicks = processor.getSystemCpuLoadTicks(); - return systemCpuLoadTicks[TickType.USER.getIndex()] - + systemCpuLoadTicks[TickType.SYSTEM.getIndex()]; + long total = 0; + for (int i = 0; i < systemCpuLoadTicks.length; i++) { + if (i != TickType.IDLE.getIndex() && i != TickType.IOWAIT.getIndex()) { + total += systemCpuLoadTicks[i]; + } + } + return total; } private static void send(TelemetryClient telemetryClient, double value, String metricName) {