Author: davsclaus
Date: Sun Jun 17 12:48:34 2012
New Revision: 1351102
URL: http://svn.apache.org/viewvc?rev=1351102&view=rev
Log:
CAMEL-5373: Added more stats to Karaf Camel context-info command.
Modified:
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java
Modified:
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java
URL:
http://svn.apache.org/viewvc/camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java?rev=1351102&r1=1351101&r2=1351102&view=diff
==============================================================================
---
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java
(original)
+++
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java
Sun Jun 17 12:48:34 2012
@@ -16,9 +16,10 @@
*/
package org.apache.camel.karaf.commands;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import java.util.Iterator;
import java.util.Set;
-
import javax.management.MBeanServer;
import javax.management.ObjectName;
@@ -59,18 +60,61 @@ public class ContextInfo extends OsgiCom
System.out.println(StringEscapeUtils.unescapeJava("\tVersion: " +
camelContext.getVersion()));
System.out.println(StringEscapeUtils.unescapeJava("\tStatus: " +
camelContext.getStatus()));
System.out.println(StringEscapeUtils.unescapeJava("\tUptime: " +
camelContext.getUptime()));
-
+
+ // the statistics are in the mbenas
+ ObjectName contextMBean = null;
MBeanServer mBeanServer =
camelContext.getManagementStrategy().getManagementAgent().getMBeanServer();
Set<ObjectName> set = mBeanServer.queryNames(new
ObjectName(DefaultManagementAgent.DEFAULT_DOMAIN + ":type=context,name=\"" +
name + "\",*"), null);
Iterator<ObjectName> iterator = set.iterator();
if (iterator.hasNext()) {
- ObjectName contextMBean = iterator.next();
+ contextMBean = iterator.next();
+ }
+
+ if (mBeanServer.isRegistered(contextMBean)) {
+ Long exchangesTotal = (Long)
mBeanServer.getAttribute(contextMBean, "ExchangesTotal");
+ System.out.println(StringEscapeUtils.unescapeJava("\tExchanges
Total: " + exchangesTotal));
+ Long exchangesCompleted = (Long)
mBeanServer.getAttribute(contextMBean, "ExchangesCompleted");
+ System.out.println(StringEscapeUtils.unescapeJava("\tExchanges
Completed: " + exchangesCompleted));
+ Long exchangesFailed = (Long)
mBeanServer.getAttribute(contextMBean, "ExchangesFailed");
+ System.out.println(StringEscapeUtils.unescapeJava("\tExchanges
Failed: " + exchangesFailed));
+ Long minProcessingTime = (Long)
mBeanServer.getAttribute(contextMBean, "MinProcessingTime");
+ System.out.println(StringEscapeUtils.unescapeJava("\tMin
Processing Time: " + minProcessingTime + "ms"));
+ Long maxProcessingTime = (Long)
mBeanServer.getAttribute(contextMBean, "MaxProcessingTime");
+ System.out.println(StringEscapeUtils.unescapeJava("\tMax
Processing Time: " + maxProcessingTime + "ms"));
+ Long meanProcessingTime = (Long)
mBeanServer.getAttribute(contextMBean, "MeanProcessingTime");
+ System.out.println(StringEscapeUtils.unescapeJava("\tMean
Processing Time: " + meanProcessingTime + "ms"));
+ Long totalProcessingTime = (Long)
mBeanServer.getAttribute(contextMBean, "TotalProcessingTime");
+ System.out.println(StringEscapeUtils.unescapeJava("\tTotal
Processing Time: " + totalProcessingTime + "ms"));
+ Long lastProcessingTime = (Long)
mBeanServer.getAttribute(contextMBean, "LastProcessingTime");
+ System.out.println(StringEscapeUtils.unescapeJava("\tLast
Processing Time: " + lastProcessingTime + "ms"));
+
String load01 = (String) mBeanServer.getAttribute(contextMBean,
"Load01");
String load05 = (String) mBeanServer.getAttribute(contextMBean,
"Load05");
String load15 = (String) mBeanServer.getAttribute(contextMBean,
"Load15");
System.out.println(StringEscapeUtils.unescapeJava("\tLoad Avg: " +
load01 + ", " + load05 + ", " + load15));
+
+ // Test for null to see if a any exchanges have been processed
first to avoid NPE
+ Object firstExchangeTimestampObj =
mBeanServer.getAttribute(contextMBean, "FirstExchangeCompletedTimestamp");
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd
HH:mm:ss");
+ if (firstExchangeTimestampObj == null) {
+ // Print an empty value for scripting
+ System.out.println(StringEscapeUtils.unescapeJava("\tFirst
Exchange Date:"));
+ } else {
+ Date firstExchangeTimestamp = (Date) firstExchangeTimestampObj;
+ System.out.println(StringEscapeUtils.unescapeJava("\tFirst
Exchange Date: " + format.format(firstExchangeTimestamp)));
+ }
+
+ // Again, check for null to avoid NPE
+ Object lastExchangeCompletedTimestampObj =
mBeanServer.getAttribute(contextMBean, "LastExchangeCompletedTimestamp");
+ if (lastExchangeCompletedTimestampObj == null) {
+ // Print an empty value for scripting
+ System.out.println(StringEscapeUtils.unescapeJava("\tLast
Exchange Completed Date:"));
+ } else {
+ Date lastExchangeCompletedTimestamp = (Date)
lastExchangeCompletedTimestampObj;
+ System.out.println(StringEscapeUtils.unescapeJava("\tLast
Exchange Completed Date: " + format.format(lastExchangeCompletedTimestamp)));
+ }
}
-
+
System.out.println("");
System.out.println(StringEscapeUtils.unescapeJava("\u001B[1mAdvanced\u001B[0m"));
System.out.println(StringEscapeUtils.unescapeJava("\tAuto Startup: " +
camelContext.isAutoStartup()));