You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2020/09/01 09:47:55 UTC

[skywalking] branch master updated: Make the cpu usage percent always greater than 1 (#5422)

This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 246ea6b  Make the cpu usage percent always greater than 1 (#5422)
246ea6b is described below

commit 246ea6b38b8160c7a600be8f0279e34132ac8ef9
Author: xbkaishui <xb...@126.com>
AuthorDate: Tue Sep 1 17:47:35 2020 +0800

    Make the cpu usage percent always greater than 1 (#5422)
    
    * fix bug #5417, make the CPU usage percent always >= 1
---
 .../oap/server/analyzer/provider/jvm/JVMSourceDispatcher.java         | 4 +++-
 .../analyzer/agent/kafka/provider/handler/JVMMetricsHandlerTest.java  | 4 ++++
 2 files changed, 7 insertions(+), 1 deletion(-)

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 0db68dc..f1ab7b9 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 4ea6f73..a9ff2f0 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<Source> 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);