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/11/24 10:35:21 UTC

[camel] 03/04: camel-jbang - camel get micrometer

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 19ac4fa6f96e0c5fb670782624a8178491fa1dc0
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Thu Nov 24 11:26:10 2022 +0100

    camel-jbang - camel get micrometer
---
 .../core/commands/process/ListMicrometer.java      | 41 ++++++++++++++++++----
 1 file changed, 35 insertions(+), 6 deletions(-)

diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListMicrometer.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListMicrometer.java
index 779210df04c..ff313ab0e82 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListMicrometer.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListMicrometer.java
@@ -50,6 +50,10 @@ public class ListMicrometer extends ProcessBaseCommand {
                         description = "Only show custom metrics", defaultValue = "false")
     boolean custom;
 
+    @CommandLine.Option(names = { "--all" },
+                        description = "Whether to show all metrics (also unused with counter being 0)", defaultValue = "false")
+    boolean all;
+
     public ListMicrometer(CamelJBangMain main) {
         super(main);
     }
@@ -95,6 +99,9 @@ public class ListMicrometer extends ProcessBaseCommand {
                                     if (custom && row.metricName.startsWith("Camel")) {
                                         continue; // skip internal camel metrics
                                     }
+                                    if (!all && getNumber(row.count).isEmpty()) {
+                                        continue;
+                                    }
                                     if (filter == null || row.type.equals(filter) || row.metricName.contains(filter)) {
                                         rows.add(row);
                                     }
@@ -117,6 +124,9 @@ public class ListMicrometer extends ProcessBaseCommand {
                                     if (custom && row.metricName.startsWith("Camel")) {
                                         continue; // skip internal camel metrics
                                     }
+                                    if (!all && getNumber(row.count).isEmpty()) {
+                                        continue;
+                                    }
                                     if (filter == null || row.type.equals(filter) || row.metricName.contains(filter)) {
                                         rows.add(row);
                                     }
@@ -136,6 +146,9 @@ public class ListMicrometer extends ProcessBaseCommand {
                                     if (custom && row.metricName.startsWith("Camel")) {
                                         continue; // skip internal camel metrics
                                     }
+                                    if (!all && getNumber(row.count).isEmpty()) {
+                                        continue;
+                                    }
                                     if (filter == null || row.type.equals(filter) || row.metricName.contains(filter)) {
                                         rows.add(row);
                                     }
@@ -158,6 +171,9 @@ public class ListMicrometer extends ProcessBaseCommand {
                                     if (custom && row.metricName.startsWith("Camel")) {
                                         continue; // skip internal camel metrics
                                     }
+                                    if (!all && getNumber(row.count).isEmpty()) {
+                                        continue;
+                                    }
                                     if (filter == null || row.type.equals(filter) || row.metricName.contains(filter)) {
                                         rows.add(row);
                                     }
@@ -176,7 +192,7 @@ public class ListMicrometer extends ProcessBaseCommand {
                     new Column().header("NAME").dataAlign(HorizontalAlign.LEFT).maxWidth(30, OverflowBehaviour.ELLIPSIS_RIGHT)
                             .with(r -> r.name),
                     new Column().header("TYPE").dataAlign(HorizontalAlign.LEFT).with(r -> r.type),
-                    new Column().header("METRIC").dataAlign(HorizontalAlign.LEFT).maxWidth(25, OverflowBehaviour.ELLIPSIS_RIGHT)
+                    new Column().header("METRIC").dataAlign(HorizontalAlign.LEFT).maxWidth(40, OverflowBehaviour.ELLIPSIS_RIGHT)
                             .with(r -> r.metricName),
                     new Column().header("ROUTE").dataAlign(HorizontalAlign.LEFT).maxWidth(25, OverflowBehaviour.ELLIPSIS_RIGHT)
                             .with(r -> r.metricRouteId),
@@ -200,16 +216,29 @@ public class ListMicrometer extends ProcessBaseCommand {
             s = s.substring(1);
             negate = -1;
         }
+
+        int answer;
         switch (s) {
             case "pid":
-                return Long.compare(Long.parseLong(o1.pid), Long.parseLong(o2.pid)) * negate;
+                answer = Long.compare(Long.parseLong(o1.pid), Long.parseLong(o2.pid)) * negate;
+                break;
             case "name":
-                return o1.name.compareToIgnoreCase(o2.name) * negate;
+                answer = o1.name.compareToIgnoreCase(o2.name) * negate;
+                break;
             case "age":
-                return Long.compare(o1.uptime, o2.uptime) * negate;
+                answer = Long.compare(o1.uptime, o2.uptime) * negate;
+                break;
             default:
-                return 0;
+                answer = 0;
+        }
+        if (answer == 0) {
+            // sort by metric/route
+            answer = o1.metricName.compareToIgnoreCase(o2.metricName) * negate;
+            if (answer == 0) {
+                answer = o1.metricRouteId.compareToIgnoreCase(o2.metricRouteId) * negate;
+            }
         }
+        return answer;
     }
 
     private String getNumber(double d) {
@@ -232,7 +261,7 @@ public class ListMicrometer extends ProcessBaseCommand {
                 }
             }
         }
-        return null;
+        return "";
     }
 
     private static class Row implements Cloneable {