You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/09/09 08:18:00 UTC

[camel] 02/03: CAMEL-18488: camel-management - Statistic for current throughput

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

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 7b86d1ad63834a489fc659648c3252649b4a1a0d
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Sep 9 10:13:13 2022 +0200

    CAMEL-18488: camel-management - Statistic for current throughput
---
 .../java/org/apache/camel/management/mbean/LoadThroughput.java   | 7 ++++---
 .../src/main/java/org/apache/camel/util/StopWatch.java           | 9 ++++++++-
 .../dsl/jbang/core/commands/process/CamelContextStatus.java      | 4 ++--
 .../camel/dsl/jbang/core/commands/process/CamelRouteStatus.java  | 4 ++--
 4 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/LoadThroughput.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/LoadThroughput.java
index 546f00d7bae..1a04cae0547 100644
--- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/LoadThroughput.java
+++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/LoadThroughput.java
@@ -25,7 +25,7 @@ public final class LoadThroughput {
 
     private final StopWatch watch = new StopWatch(false);
     private long last;
-    private double thp = Double.NaN;
+    private double thp;
 
     /**
      * Update the load statistics
@@ -33,7 +33,7 @@ public final class LoadThroughput {
      * @param currentReading the current reading
      */
     public void update(long currentReading) {
-        if (watch.taken() == 0) {
+        if (!watch.isStarted()) {
             watch.restart();
             thp = 0;
         } else {
@@ -41,7 +41,8 @@ public final class LoadThroughput {
             if (time > 0) {
                 long delta = currentReading - last;
                 if (delta > 0) {
-                    thp = (1000 / time) * delta;
+                    // need to calculate with fractions
+                    thp = (1000d / time) * delta;
                 } else {
                     thp = 0;
                 }
diff --git a/core/camel-util/src/main/java/org/apache/camel/util/StopWatch.java b/core/camel-util/src/main/java/org/apache/camel/util/StopWatch.java
index 9615d4094a7..e7cba5899ab 100644
--- a/core/camel-util/src/main/java/org/apache/camel/util/StopWatch.java
+++ b/core/camel-util/src/main/java/org/apache/camel/util/StopWatch.java
@@ -59,6 +59,13 @@ public final class StopWatch {
         start = System.nanoTime();
     }
 
+    /**
+     * Whether the watch is started
+     */
+    public boolean isStarted() {
+        return start > 0;
+    }
+
     /**
      * Returns the time taken in millis.
      *
@@ -79,7 +86,7 @@ public final class StopWatch {
      */
     public long takenAndRestart() {
         long answer = taken();
-        restart();
+        start = System.nanoTime();
         return answer;
     }
 
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java
index 33c719c8b9d..77d10278a93 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java
@@ -185,8 +185,8 @@ public class CamelContextStatus extends ProcessBaseCommand {
 
     private String getThroughput(Row r) {
         String s = r.throughput;
-        if ("0.00".equals(s) || s.isEmpty()) {
-            s = "-";
+        if (s == null || s.isEmpty()) {
+            s = "";
         }
         return s;
     }
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelRouteStatus.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelRouteStatus.java
index f77cce19600..592fe53a265 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelRouteStatus.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelRouteStatus.java
@@ -189,8 +189,8 @@ public class CamelRouteStatus extends ProcessBaseCommand {
 
     private String getThroughput(Row r) {
         String s = r.throughput;
-        if ("0.00".equals(s) || s.isEmpty()) {
-            s = "-";
+        if (s == null || s.isEmpty()) {
+            s = "";
         }
         return s;
     }