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 2015/09/28 11:05:51 UTC

[2/2] camel git commit: CAMEL-9179: Add uptime to Camel route list command.

CAMEL-9179: Add uptime to Camel route list command.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/6d3d1309
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/6d3d1309
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/6d3d1309

Branch: refs/heads/master
Commit: 6d3d1309c364201ac17c677644818c174c597e62
Parents: 92c5fe5
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Sep 28 11:07:34 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Sep 28 11:07:34 2015 +0200

----------------------------------------------------------------------
 .../commands/AbstractLocalCamelController.java  | 12 +++++
 .../apache/camel/commands/RouteListCommand.java | 48 ++++++++++++++++++--
 .../jolokia/DefaultJolokiaCamelController.java  |  6 ++-
 3 files changed, 61 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6d3d1309/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractLocalCamelController.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractLocalCamelController.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractLocalCamelController.java
index 823e5b3..6d80584 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractLocalCamelController.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/AbstractLocalCamelController.java
@@ -37,6 +37,7 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.Route;
 import org.apache.camel.ServiceStatus;
 import org.apache.camel.StatefulService;
+import org.apache.camel.api.management.mbean.ManagedRouteMBean;
 import org.apache.camel.model.ModelHelper;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.rest.RestDefinition;
@@ -266,6 +267,17 @@ public abstract class AbstractLocalCamelController extends AbstractCamelControll
                         row.put("camelContextName", context.getName());
                         row.put("routeId", route.getId());
                         row.put("state", getRouteState(route));
+                        row.put("uptime", route.getUptime());
+                        ManagedRouteMBean mr = context.getManagedRoute(route.getId(), ManagedRouteMBean.class);
+                        if (mr != null) {
+                            row.put("exchangesTotal", "" + mr.getExchangesTotal());
+                            row.put("exchangesInflight", "" + mr.getExchangesInflight());
+                            row.put("exchangesFailed", "" + mr.getExchangesFailed());
+                        } else {
+                            row.put("exchangesTotal", "0");
+                            row.put("exchangesInflight", "0");
+                            row.put("exchangesFailed", "0");
+                        }
                         answer.add(row);
                     }
                 }

http://git-wip-us.apache.org/repos/asf/camel/blob/6d3d1309/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteListCommand.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteListCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteListCommand.java
index 8c00d7a..2c94afd 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteListCommand.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteListCommand.java
@@ -29,6 +29,10 @@ public class RouteListCommand extends AbstractCamelCommand {
     private static final String CONTEXT_COLUMN_LABEL = "Context";
     private static final String ROUTE_COLUMN_LABEL = "Route";
     private static final String STATUS_COLUMN_LABEL = "Status";
+    private static final String TOTAL_COLUMN_LABEL = "Total #";
+    private static final String FAILED_COLUMN_LABEL = "Failed #";
+    private static final String INFLIGHT_COLUMN_LABEL = "Inflight #";
+    private static final String UPTIME_COLUMN_LABEL = "Uptime";
 
     private static final int DEFAULT_COLUMN_WIDTH_INCREMENT = 0;
     private static final String DEFAULT_FIELD_PREAMBLE = " ";
@@ -54,13 +58,17 @@ public class RouteListCommand extends AbstractCamelCommand {
         final String rowFormat = buildFormatString(columnWidths, false);
 
         if (routes.size() > 0) {
-            out.println(String.format(headerFormat, CONTEXT_COLUMN_LABEL, ROUTE_COLUMN_LABEL, STATUS_COLUMN_LABEL));
-            out.println(String.format(headerFormat, "-------", "-----", "------"));
+            out.println(String.format(headerFormat, CONTEXT_COLUMN_LABEL, ROUTE_COLUMN_LABEL, STATUS_COLUMN_LABEL, TOTAL_COLUMN_LABEL, FAILED_COLUMN_LABEL, INFLIGHT_COLUMN_LABEL, UPTIME_COLUMN_LABEL));
+            out.println(String.format(headerFormat, "-------", "-----", "------", "-------", "--------", "----------", "------"));
             for (Map<String, String> row : routes) {
                 String contextId = row.get("camelContextName");
                 String routeId = row.get("routeId");
                 String state = row.get("state");
-                out.println(String.format(rowFormat, contextId, routeId, state));
+                String total = row.get("exchangesTotal");
+                String failed = row.get("exchangesFailed");
+                String inflight = row.get("exchangesInflight");
+                String uptime = row.get("uptime");
+                out.println(String.format(rowFormat, contextId, routeId, state, total, failed, inflight, uptime));
             }
         }
 
@@ -74,6 +82,10 @@ public class RouteListCommand extends AbstractCamelCommand {
             int maxContextLen = 0;
             int maxRouteLen = 0;
             int maxStatusLen = 0;
+            int maxTotalLen = 0;
+            int maxFailedLen = 0;
+            int maxInflightLen = 0;
+            int maxUptimeLen = 0;
 
             for (Map<String, String> row : routes) {
                 final String contextId = row.get("camelContextName");
@@ -84,12 +96,28 @@ public class RouteListCommand extends AbstractCamelCommand {
 
                 final String status = row.get("state");
                 maxStatusLen = java.lang.Math.max(maxStatusLen, status == null ? 0 : status.length());
+
+                final String total = row.get("exchangesTotal");
+                maxTotalLen = java.lang.Math.max(maxTotalLen, total == null ? 0 : total.length());
+
+                final String failed = row.get("exchangesFailed");
+                maxFailedLen = java.lang.Math.max(maxFailedLen, failed == null ? 0 : failed.length());
+
+                final String inflight = row.get("exchangesInflight");
+                maxInflightLen = java.lang.Math.max(maxInflightLen, inflight == null ? 0 : inflight.length());
+
+                final String uptime = row.get("uptime");
+                maxUptimeLen = java.lang.Math.max(maxUptimeLen, uptime == null ? 0 : uptime.length());
             }
 
             final Map<String, Integer> retval = new Hashtable<String, Integer>(3);
             retval.put(CONTEXT_COLUMN_LABEL, maxContextLen);
             retval.put(ROUTE_COLUMN_LABEL, maxRouteLen);
             retval.put(STATUS_COLUMN_LABEL, maxStatusLen);
+            retval.put(TOTAL_COLUMN_LABEL, maxTotalLen);
+            retval.put(FAILED_COLUMN_LABEL, maxFailedLen);
+            retval.put(INFLIGHT_COLUMN_LABEL, maxInflightLen);
+            retval.put(UPTIME_COLUMN_LABEL, maxUptimeLen);
 
             return retval;
         }
@@ -112,14 +140,26 @@ public class RouteListCommand extends AbstractCamelCommand {
         int contextLen = Math.min(columnWidths.get(CONTEXT_COLUMN_LABEL) + columnWidthIncrement, MAX_COLUMN_WIDTH);
         int routeLen = Math.min(columnWidths.get(ROUTE_COLUMN_LABEL) + columnWidthIncrement, MAX_COLUMN_WIDTH);
         int statusLen = Math.min(columnWidths.get(STATUS_COLUMN_LABEL) + columnWidthIncrement, MAX_COLUMN_WIDTH);
+        int totalLen = Math.min(columnWidths.get(TOTAL_COLUMN_LABEL) + columnWidthIncrement, MAX_COLUMN_WIDTH);
+        int failedlLen = Math.min(columnWidths.get(FAILED_COLUMN_LABEL) + columnWidthIncrement, MAX_COLUMN_WIDTH);
+        int inflightLen = Math.min(columnWidths.get(INFLIGHT_COLUMN_LABEL) + columnWidthIncrement, MAX_COLUMN_WIDTH);
+        int uptimeLen = Math.min(columnWidths.get(UPTIME_COLUMN_LABEL) + columnWidthIncrement, MAX_COLUMN_WIDTH);
         contextLen = Math.max(MIN_COLUMN_WIDTH, contextLen);
         routeLen = Math.max(MIN_COLUMN_WIDTH, routeLen);
-        // last row does not have min width
+        statusLen = Math.max(MIN_COLUMN_WIDTH, statusLen);
+        totalLen = Math.max(MIN_COLUMN_WIDTH, totalLen);
+        failedlLen = Math.max(MIN_COLUMN_WIDTH, failedlLen);
+        inflightLen = Math.max(MIN_COLUMN_WIDTH, inflightLen);
+        uptimeLen = Math.max(MIN_COLUMN_WIDTH, uptimeLen);
 
         final StringBuilder retval = new StringBuilder(DEFAULT_FORMAT_BUFFER_LENGTH);
         retval.append(fieldPreamble).append("%-").append(contextLen).append('.').append(contextLen).append('s').append(fieldPostamble).append(' ');
         retval.append(fieldPreamble).append("%-").append(routeLen).append('.').append(routeLen).append('s').append(fieldPostamble).append(' ');
         retval.append(fieldPreamble).append("%-").append(statusLen).append('.').append(statusLen).append('s').append(fieldPostamble).append(' ');
+        retval.append(fieldPreamble).append("%").append(totalLen).append('.').append(totalLen).append('s').append(fieldPostamble).append(' ');
+        retval.append(fieldPreamble).append("%").append(failedlLen).append('.').append(failedlLen).append('s').append(fieldPostamble).append(' ');
+        retval.append(fieldPreamble).append("%").append(inflightLen).append('.').append(inflightLen).append('s').append(fieldPostamble).append(' ');
+        retval.append(fieldPreamble).append("%-").append(uptimeLen).append('.').append(uptimeLen).append('s').append(fieldPostamble).append(' ');
 
         return retval.toString();
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/6d3d1309/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/DefaultJolokiaCamelController.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/DefaultJolokiaCamelController.java b/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/DefaultJolokiaCamelController.java
index 6404fa2..21fd022 100644
--- a/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/DefaultJolokiaCamelController.java
+++ b/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/DefaultJolokiaCamelController.java
@@ -332,7 +332,7 @@ public class DefaultJolokiaCamelController extends AbstractCamelController imple
 
             List<J4pReadRequest> list = new ArrayList<J4pReadRequest>();
             for (ObjectName on : sr.getObjectNames()) {
-                list.add(new J4pReadRequest(on, "CamelId", "RouteId", "State"));
+                list.add(new J4pReadRequest(on, "CamelId", "RouteId", "State", "Uptime", "ExchangesTotal", "ExchangesInflight", "ExchangesFailed"));
             }
 
             List<J4pReadResponse> lrr = jolokia.execute(list);
@@ -343,6 +343,10 @@ public class DefaultJolokiaCamelController extends AbstractCamelController imple
                     row.put("camelContextName", rr.getValue("CamelId").toString());
                     row.put("routeId", routeId);
                     row.put("state", rr.getValue("State").toString());
+                    row.put("uptime", rr.getValue("Uptime").toString());
+                    row.put("exchangesTotal", rr.getValue("ExchangesTotal").toString());
+                    row.put("exchangesInflight", rr.getValue("ExchangesInflight").toString());
+                    row.put("exchangesFailed", rr.getValue("ExchangesFailed").toString());
                     answer.add(row);
                 }
             }