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/06/02 10:04:05 UTC

camel git commit: CAMEL-8824: Add startTimestamp to JMX attributes

Repository: camel
Updated Branches:
  refs/heads/master de1037475 -> 43bdad7da


CAMEL-8824: Add startTimestamp to JMX attributes


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

Branch: refs/heads/master
Commit: 43bdad7da75cda447cce2d921f68a6aa123d5547
Parents: de10374
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Jun 2 09:43:42 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Jun 2 09:43:42 2015 +0200

----------------------------------------------------------------------
 .../camel/api/management/mbean/ManagedCounterMBean.java  |  3 +++
 .../apache/camel/management/mbean/ManagedCounter.java    |  8 ++++++++
 .../management/mbean/ManagedPerformanceCounter.java      |  1 +
 .../java/org/apache/camel/util/CamelContextStatDump.java | 11 +++++++++++
 .../main/java/org/apache/camel/util/RouteStatDump.java   | 11 +++++++++++
 .../org/apache/camel/commands/ContextInfoCommand.java    |  9 +++++++++
 .../java/org/apache/camel/commands/RouteInfoCommand.java |  9 +++++++++
 7 files changed, 52 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/43bdad7d/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCounterMBean.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCounterMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCounterMBean.java
index 3f23e86..1fd60ea 100644
--- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCounterMBean.java
+++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCounterMBean.java
@@ -26,6 +26,9 @@ public interface ManagedCounterMBean {
     @ManagedOperation(description = "Reset counters")
     void reset();
 
+    @ManagedAttribute(description = "Timestamp when the stats was initially started")
+    Date getStartTimestamp();
+
     @ManagedAttribute(description = "Timestamp when the stats was last reset or initially started")
     Date getResetTimestamp();
 

http://git-wip-us.apache.org/repos/asf/camel/blob/43bdad7d/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCounter.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCounter.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCounter.java
index 5db34c7..84907b9 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCounter.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCounter.java
@@ -25,11 +25,14 @@ import org.apache.camel.spi.ManagementStrategy;
 @ManagedResource(description = "Managed Counter")
 public abstract class ManagedCounter implements ManagedCounterMBean {
     protected Statistic exchangesTotal;
+    protected Statistic startTimestamp;
     protected Statistic resetTimestamp;
 
     public void init(ManagementStrategy strategy) {
         this.exchangesTotal = new Statistic("org.apache.camel.exchangesTotal", this, Statistic.UpdateMode.COUNTER);
+        this.startTimestamp = new Statistic("org.apache.camel.startTimestamp", this, Statistic.UpdateMode.VALUE);
         this.resetTimestamp = new Statistic("org.apache.camel.resetTimestamp", this, Statistic.UpdateMode.VALUE);
+        startTimestamp.updateValue(new Date().getTime());
         resetTimestamp.updateValue(new Date().getTime());
     }
 
@@ -38,6 +41,11 @@ public abstract class ManagedCounter implements ManagedCounterMBean {
         resetTimestamp.updateValue(new Date().getTime());
     }
 
+    public Date getStartTimestamp() {
+        long value = startTimestamp.getValue();
+        return value > 0 ? new Date(value) : null;
+    }
+
     public Date getResetTimestamp() {
         long value = resetTimestamp.getValue();
         return value > 0 ? new Date(value) : null;

http://git-wip-us.apache.org/repos/asf/camel/blob/43bdad7d/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
index 07c7f95..fe1320c 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
@@ -272,6 +272,7 @@ public abstract class ManagedPerformanceCounter extends ManagedCounter implement
         sb.append(String.format(" meanProcessingTime=\"%s\"", meanProcessingTime.getValue()));
 
         if (fullStats) {
+            sb.append(String.format(" startTimestamp=\"%s\"", dateAsString(startTimestamp.getValue())));
             sb.append(String.format(" resetTimestamp=\"%s\"", dateAsString(resetTimestamp.getValue())));
             sb.append(String.format(" firstExchangeCompletedTimestamp=\"%s\"", dateAsString(firstExchangeCompletedTimestamp.getValue())));
             sb.append(String.format(" firstExchangeCompletedExchangeId=\"%s\"", nullSafe(firstExchangeCompletedExchangeId)));

http://git-wip-us.apache.org/repos/asf/camel/blob/43bdad7d/camel-core/src/main/java/org/apache/camel/util/CamelContextStatDump.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/CamelContextStatDump.java b/camel-core/src/main/java/org/apache/camel/util/CamelContextStatDump.java
index 08680c3..ebe539a 100644
--- a/camel-core/src/main/java/org/apache/camel/util/CamelContextStatDump.java
+++ b/camel-core/src/main/java/org/apache/camel/util/CamelContextStatDump.java
@@ -75,6 +75,9 @@ public final class CamelContextStatDump {
     private Long selfProcessingTime;
 
     @XmlAttribute
+    private String startTimestamp;
+
+    @XmlAttribute
     private String resetTimestamp;
 
     @XmlAttribute
@@ -219,6 +222,14 @@ public final class CamelContextStatDump {
         this.exchangesInflight = exchangesInflight;
     }
 
+    public String getStartTimestamp() {
+        return startTimestamp;
+    }
+
+    public void setStartTimestamp(String startTimestamp) {
+        this.startTimestamp = startTimestamp;
+    }
+
     public String getResetTimestamp() {
         return resetTimestamp;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/43bdad7d/camel-core/src/main/java/org/apache/camel/util/RouteStatDump.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/RouteStatDump.java b/camel-core/src/main/java/org/apache/camel/util/RouteStatDump.java
index 9079384..d27f4b8 100644
--- a/camel-core/src/main/java/org/apache/camel/util/RouteStatDump.java
+++ b/camel-core/src/main/java/org/apache/camel/util/RouteStatDump.java
@@ -75,6 +75,9 @@ public final class RouteStatDump {
     private Long selfProcessingTime;
 
     @XmlAttribute
+    private String startTimestamp;
+
+    @XmlAttribute
     private String resetTimestamp;
 
     @XmlAttribute
@@ -219,6 +222,14 @@ public final class RouteStatDump {
         this.exchangesInflight = exchangesInflight;
     }
 
+    public String getStartTimestamp() {
+        return startTimestamp;
+    }
+
+    public void setStartTimestamp(String startTimestamp) {
+        this.startTimestamp = startTimestamp;
+    }
+
     public String getResetTimestamp() {
         return resetTimestamp;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/43bdad7d/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ContextInfoCommand.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ContextInfoCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ContextInfoCommand.java
index 4a31da49..d2a9731 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ContextInfoCommand.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ContextInfoCommand.java
@@ -195,6 +195,15 @@ public class ContextInfoCommand extends AbstractCamelCommand {
             out.println(stringEscape.unescapeJava("\tLast Processing Time: " + stat.getLastProcessingTime() + " ms"));
             out.println(stringEscape.unescapeJava("\tDelta Processing Time: " + stat.getDeltaProcessingTime() + " ms"));
 
+            if (isEmpty(stat.getStartTimestamp())) {
+                // Print an empty value for scripting
+                out.println(stringEscape.unescapeJava("\tStart Statistics Date:"));
+            } else {
+                Date date = new SimpleDateFormat(XML_TIMESTAMP_FORMAT).parse(stat.getStartTimestamp());
+                String text = new SimpleDateFormat(OUTPUT_TIMESTAMP_FORMAT).format(date);
+                out.println(stringEscape.unescapeJava("\tStart Statistics Date: " + text));
+            }
+
             // Test for null to see if a any exchanges have been processed first to avoid NPE
             if (isEmpty(stat.getResetTimestamp())) {
                 // Print an empty value for scripting

http://git-wip-us.apache.org/repos/asf/camel/blob/43bdad7d/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteInfoCommand.java
----------------------------------------------------------------------
diff --git a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteInfoCommand.java b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteInfoCommand.java
index f75fbc8..49bc4c1 100644
--- a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteInfoCommand.java
+++ b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/RouteInfoCommand.java
@@ -76,6 +76,15 @@ public class RouteInfoCommand extends AbstractRouteCommand {
             out.println(stringEscape.unescapeJava("\tLast Processing Time: " + route.getLastProcessingTime() + " ms"));
             out.println(stringEscape.unescapeJava("\tDelta Processing Time: " + route.getDeltaProcessingTime() + " ms"));
 
+            if (isEmpty(route.getStartTimestamp())) {
+                // Print an empty value for scripting
+                out.println(stringEscape.unescapeJava("\tStart Statistics Date:"));
+            } else {
+                Date date = new SimpleDateFormat(XML_TIMESTAMP_FORMAT).parse(route.getStartTimestamp());
+                String text = new SimpleDateFormat(OUTPUT_TIMESTAMP_FORMAT).format(date);
+                out.println(stringEscape.unescapeJava("\tStart Statistics Date: " + text));
+            }
+
             // Test for null to see if a any exchanges have been processed first to avoid NPE
             if (isEmpty(route.getResetTimestamp())) {
                 // Print an empty value for scripting