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 140a3d1eed892a50726beaaf490f0297a0d75ede..d44184b1d206c7c322dc376d9f1e7b4a47de7af3 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,8 +22,8 @@ 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. + * The unit of CPU usage is 1/10000. The backend is using `avg` func directly, and query for percentage requires this + * unit. * * @author wusheng */ @@ -38,7 +38,7 @@ public abstract class CPUMetricsAccessor { protected void init() { lastCPUTimeNs = this.getCpuTime(); - this.lastSampleTimeNs = System.nanoTime(); + lastSampleTimeNs = System.nanoTime(); } protected abstract long getCpuTime(); @@ -48,7 +48,12 @@ public abstract class CPUMetricsAccessor { long cpuCost = cpuTime - lastCPUTimeNs; long now = System.nanoTime(); - CPU.Builder cpuBuilder = CPU.newBuilder(); - return cpuBuilder.setUsagePercent(cpuCost * 1.0d / ((now - lastSampleTimeNs) * cpuCoreNum) * 10000).build(); + try { + CPU.Builder cpuBuilder = CPU.newBuilder(); + return cpuBuilder.setUsagePercent(cpuCost * 1.0d / ((now - lastSampleTimeNs) * cpuCoreNum) * 100).build(); + } finally { + lastCPUTimeNs = cpuTime; + lastSampleTimeNs = now; + } } } diff --git a/skywalking-ui b/skywalking-ui index d48cc15b3a7260ff62a79dab3699db32a6889b3f..1ace261b8bbef0ac8b799106fb0a8a362571153b 160000 --- a/skywalking-ui +++ b/skywalking-ui @@ -1 +1 @@ -Subproject commit d48cc15b3a7260ff62a79dab3699db32a6889b3f +Subproject commit 1ace261b8bbef0ac8b799106fb0a8a362571153b