diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/jvm/cpu/CPUMetricsAccessor.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/jvm/cpu/CPUMetricsAccessor.java index 174d209b5d314ea9ae1d9db87814a7f815f2cc25..140a3d1eed892a50726beaaf490f0297a0d75ede 100644 --- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/jvm/cpu/CPUMetricsAccessor.java +++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/jvm/cpu/CPUMetricsAccessor.java @@ -22,6 +22,9 @@ package org.apache.skywalking.apm.agent.core.jvm.cpu; import org.apache.skywalking.apm.network.common.CPU; /** + * The unit of CPU usage is 1/10000. + * The backend is using `avg` func directly, and query for percentage requires this unit. + * * @author wusheng */ public abstract class CPUMetricsAccessor { @@ -46,6 +49,6 @@ public abstract class CPUMetricsAccessor { long now = System.nanoTime(); CPU.Builder cpuBuilder = CPU.newBuilder(); - return cpuBuilder.setUsagePercent(cpuCost * 1.0d / ((now - lastSampleTimeNs) * cpuCoreNum) * 100).build(); + return cpuBuilder.setUsagePercent(cpuCost * 1.0d / ((now - lastSampleTimeNs) * cpuCoreNum) * 10000).build(); } }