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

wenjun pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 255ec35c3b Filter the NaN of system_cpu_usage/process_cpu_usage 
(#16289)
255ec35c3b is described below

commit 255ec35c3b73d8a6949c9aad6b3740e84ecff838
Author: Wenjun Ruan <[email protected]>
AuthorDate: Mon Jul 8 21:43:59 2024 +0800

    Filter the NaN of system_cpu_usage/process_cpu_usage (#16289)
---
 .../meter/metrics/DefaultMetricsProvider.java               | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git 
a/dolphinscheduler-meter/src/main/java/org/apache/dolphinscheduler/meter/metrics/DefaultMetricsProvider.java
 
b/dolphinscheduler-meter/src/main/java/org/apache/dolphinscheduler/meter/metrics/DefaultMetricsProvider.java
index e293e44a8d..d0187a467e 100644
--- 
a/dolphinscheduler-meter/src/main/java/org/apache/dolphinscheduler/meter/metrics/DefaultMetricsProvider.java
+++ 
b/dolphinscheduler-meter/src/main/java/org/apache/dolphinscheduler/meter/metrics/DefaultMetricsProvider.java
@@ -33,6 +33,9 @@ public class DefaultMetricsProvider implements 
MetricsProvider {
 
     private long lastRefreshTime = 0;
 
+    private double lastSystemCpuUsage = 0.0d;
+    private double lastProcessCpuUsage = 0.0d;
+
     private static final long SYSTEM_METRICS_REFRESH_INTERVAL = 1_000L;
 
     @Override
@@ -42,7 +45,17 @@ public class DefaultMetricsProvider implements 
MetricsProvider {
         }
 
         double systemCpuUsage = 
meterRegistry.get("system.cpu.usage").gauge().value();
+        if (Double.compare(systemCpuUsage, Double.NaN) == 0) {
+            systemCpuUsage = lastSystemCpuUsage;
+        } else {
+            lastSystemCpuUsage = systemCpuUsage;
+        }
         double processCpuUsage = 
meterRegistry.get("process.cpu.usage").gauge().value();
+        if (Double.compare(processCpuUsage, Double.NaN) == 0) {
+            processCpuUsage = lastProcessCpuUsage;
+        } else {
+            lastProcessCpuUsage = processCpuUsage;
+        }
 
         double jvmMemoryUsed = 
meterRegistry.get("jvm.memory.used").meter().measure().iterator().next().getValue();
         double jvmMemoryMax = 
meterRegistry.get("jvm.memory.max").meter().measure().iterator().next().getValue();

Reply via email to