diff --git a/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/jvm/JVMSourceDispatcher.java b/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/jvm/JVMSourceDispatcher.java index 0db68dce2c876c95b79ac55160b822a2158f6910..f1ab7b955b15c29f2aa5fd1700f14d58c9d1c131 100644 --- a/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/jvm/JVMSourceDispatcher.java +++ b/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/jvm/JVMSourceDispatcher.java @@ -77,7 +77,9 @@ public class JVMSourceDispatcher { serviceInstanceJVMCPU.setName(serviceInstance); serviceInstanceJVMCPU.setServiceId(serviceId); serviceInstanceJVMCPU.setServiceName(service); - serviceInstanceJVMCPU.setUsePercent(cpu.getUsagePercent()); + // If the cpu usage percent is less than 1, will set to 1 + double adjustedCpuUsagePercent = Math.max(cpu.getUsagePercent(), 1.0); + serviceInstanceJVMCPU.setUsePercent(adjustedCpuUsagePercent); serviceInstanceJVMCPU.setTimeBucket(timeBucket); sourceReceiver.receive(serviceInstanceJVMCPU); } diff --git a/oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/test/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/JVMMetricsHandlerTest.java b/oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/test/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/JVMMetricsHandlerTest.java index 4ea6f7380c41389a76484e7cde6cded8445c7006..a9ff2f046588cc0902957aa1f8c3eb896f5abddb 100644 --- a/oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/test/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/JVMMetricsHandlerTest.java +++ b/oap-server/server-fetcher-plugin/kafka-fetcher-plugin/src/test/java/org/apache/skywalking/oap/server/analyzer/agent/kafka/provider/handler/JVMMetricsHandlerTest.java @@ -46,6 +46,8 @@ import org.junit.Before; import org.junit.ClassRule; import org.junit.Test; +import static org.hamcrest.CoreMatchers.is; + public class JVMMetricsHandlerTest { private static final String TOPIC_NAME = "skywalking-metrics"; private JVMMetricsHandler handler = null; @@ -59,6 +61,8 @@ public class JVMMetricsHandlerTest { @Override protected void verify(final List sourceList) throws Throwable { Assert.assertTrue(sourceList.get(0) instanceof ServiceInstanceJVMCPU); + ServiceInstanceJVMCPU serviceInstanceJVMCPU = (ServiceInstanceJVMCPU) sourceList.get(0); + Assert.assertThat(serviceInstanceJVMCPU.getUsePercent(), is(1.0)); Assert.assertTrue(sourceList.get(1) instanceof ServiceInstanceJVMMemory); Assert.assertTrue(sourceList.get(2) instanceof ServiceInstanceJVMMemoryPool); Assert.assertTrue(sourceList.get(3) instanceof ServiceInstanceJVMGC);