Author: davsclaus
Date: Thu Apr 4 09:35:00 2013
New Revision: 1464396
URL: http://svn.apache.org/r1464396
Log:
CAMEL-6239: Added resetTimstamp attribute to JMX so we know for how long we
have gather stats.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCounterMBean.java
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCounter.java
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
camel/trunk/camel-core/src/main/java/org/apache/camel/util/ProcessorStatDump.java
camel/trunk/camel-core/src/main/java/org/apache/camel/util/RouteStatDump.java
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRoutePerformanceCounterTest.java
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/ContextInfo.java
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteInfo.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCounterMBean.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCounterMBean.java?rev=1464396&r1=1464395&r2=1464396&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCounterMBean.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCounterMBean.java
Thu Apr 4 09:35:00 2013
@@ -16,6 +16,8 @@
*/
package org.apache.camel.api.management.mbean;
+import java.util.Date;
+
import org.apache.camel.api.management.ManagedAttribute;
import org.apache.camel.api.management.ManagedOperation;
@@ -24,6 +26,9 @@ public interface ManagedCounterMBean {
@ManagedOperation(description = "Reset counters")
void reset();
+ @ManagedAttribute(description = "Timestamp when the stats was last reset
or initially started")
+ Date getResetTimestamp();
+
@ManagedAttribute(description = "Total number of exchanges")
long getExchangesTotal() throws Exception;
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCounter.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCounter.java?rev=1464396&r1=1464395&r2=1464396&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCounter.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCounter.java
Thu Apr 4 09:35:00 2013
@@ -16,6 +16,8 @@
*/
package org.apache.camel.management.mbean;
+import java.util.Date;
+
import org.apache.camel.api.management.ManagedResource;
import org.apache.camel.api.management.mbean.ManagedCounterMBean;
import org.apache.camel.spi.ManagementStrategy;
@@ -23,13 +25,22 @@ import org.apache.camel.spi.ManagementSt
@ManagedResource(description = "Managed Counter")
public abstract class ManagedCounter implements ManagedCounterMBean {
protected Statistic exchangesTotal;
+ protected Statistic resetTimestamp;
public void init(ManagementStrategy strategy) {
this.exchangesTotal = new Statistic("org.apache.camel.exchangesTotal",
this, Statistic.UpdateMode.COUNTER);
+ this.resetTimestamp = new Statistic("org.apache.camel.resetTimestamp",
this, Statistic.UpdateMode.VALUE);
+ resetTimestamp.updateValue(new Date().getTime());
}
public synchronized void reset() {
exchangesTotal.reset();
+ resetTimestamp.updateValue(new Date().getTime());
+ }
+
+ public Date getResetTimestamp() {
+ long value = resetTimestamp.getValue();
+ return value > 0 ? new Date(value) : null;
}
public long getExchangesTotal() throws Exception {
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java?rev=1464396&r1=1464395&r2=1464396&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
Thu Apr 4 09:35:00 2013
@@ -252,6 +252,7 @@ public abstract class ManagedPerformance
sb.append(String.format(" meanProcessingTime=\"%s\"",
meanProcessingTime.getValue()));
if (fullStats) {
+ 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)));
sb.append(String.format(" firstExchangeFailureTimestamp=\"%s\"",
dateAsString(firstExchangeFailureTimestamp.getValue())));
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/util/ProcessorStatDump.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/ProcessorStatDump.java?rev=1464396&r1=1464395&r2=1464396&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/util/ProcessorStatDump.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/util/ProcessorStatDump.java
Thu Apr 4 09:35:00 2013
@@ -62,6 +62,9 @@ public final class ProcessorStatDump {
private Long meanProcessingTime;
@XmlAttribute
+ private String resetTimestamp;
+
+ @XmlAttribute
private String firstExchangeCompletedTimestamp;
@XmlAttribute
@@ -173,6 +176,14 @@ public final class ProcessorStatDump {
this.meanProcessingTime = meanProcessingTime;
}
+ public String getResetTimestamp() {
+ return resetTimestamp;
+ }
+
+ public void setResetTimestamp(String resetTimestamp) {
+ this.resetTimestamp = resetTimestamp;
+ }
+
public String getFirstExchangeCompletedTimestamp() {
return firstExchangeCompletedTimestamp;
}
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/util/RouteStatDump.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/util/RouteStatDump.java?rev=1464396&r1=1464395&r2=1464396&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/util/RouteStatDump.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/util/RouteStatDump.java
Thu Apr 4 09:35:00 2013
@@ -63,6 +63,9 @@ public final class RouteStatDump {
private Long meanProcessingTime;
@XmlAttribute
+ private String resetTimestamp;
+
+ @XmlAttribute
private String firstExchangeCompletedTimestamp;
@XmlAttribute
@@ -172,6 +175,14 @@ public final class RouteStatDump {
this.meanProcessingTime = meanProcessingTime;
}
+ public String getResetTimestamp() {
+ return resetTimestamp;
+ }
+
+ public void setResetTimestamp(String resetTimestamp) {
+ this.resetTimestamp = resetTimestamp;
+ }
+
public String getFirstExchangeCompletedTimestamp() {
return firstExchangeCompletedTimestamp;
}
Modified:
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRoutePerformanceCounterTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRoutePerformanceCounterTest.java?rev=1464396&r1=1464395&r2=1464396&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRoutePerformanceCounterTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRoutePerformanceCounterTest.java
Thu Apr 4 09:35:00 2013
@@ -72,6 +72,9 @@ public class ManagedRoutePerformanceCoun
assertTrue("Should take around 3 sec: was " + last, last > 2900);
assertTrue("Should be around 5 sec now: was " + total, total > 4900);
+ Date reset = (Date) mbeanServer.getAttribute(on, "ResetTimestamp");
+ assertNotNull(reset);
+
Date lastFailed = (Date) mbeanServer.getAttribute(on,
"LastExchangeFailureTimestamp");
Date firstFailed = (Date) mbeanServer.getAttribute(on,
"FirstExchangeFailureTimestamp");
assertNull(lastFailed);
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=1464396&r1=1464395&r2=1464396&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
Thu Apr 4 09:35:00 2013
@@ -104,8 +104,18 @@ public class ContextInfo extends OsgiCom
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");
+ Object resetTimestampObj =
mBeanServer.getAttribute(contextMBean, "ResetTimestamp");
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd
HH:mm:ss");
+ if (resetTimestampObj == null) {
+ // Print an empty value for scripting
+ System.out.println(StringEscapeUtils.unescapeJava("\tReset
Statistics Date:"));
+ } else {
+ Date firstExchangeTimestamp = (Date) resetTimestampObj;
+ System.out.println(StringEscapeUtils.unescapeJava("\tReset
Statistics Date: " + format.format(firstExchangeTimestamp)));
+ }
+
+ // Test for null to see if a any exchanges have been processed
first to avoid NPE
+ Object firstExchangeTimestampObj =
mBeanServer.getAttribute(contextMBean, "FirstExchangeCompletedTimestamp");
if (firstExchangeTimestampObj == null) {
// Print an empty value for scripting
System.out.println(StringEscapeUtils.unescapeJava("\tFirst
Exchange Date:"));
Modified:
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteInfo.java
URL:
http://svn.apache.org/viewvc/camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteInfo.java?rev=1464396&r1=1464395&r2=1464396&view=diff
==============================================================================
---
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteInfo.java
(original)
+++
camel/trunk/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/RouteInfo.java
Thu Apr 4 09:35:00 2013
@@ -101,8 +101,18 @@ public class RouteInfo extends OsgiComma
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(routeMBean, "FirstExchangeCompletedTimestamp");
+ Object resetTimestampObj =
mBeanServer.getAttribute(routeMBean, "ResetTimestamp");
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd
HH:mm:ss");
+ if (resetTimestampObj == null) {
+ // Print an empty value for scripting
+
System.out.println(StringEscapeUtils.unescapeJava("\tReset Statistics Date:"));
+ } else {
+ Date firstExchangeTimestamp = (Date) resetTimestampObj;
+
System.out.println(StringEscapeUtils.unescapeJava("\tReset Statistics Date: " +
format.format(firstExchangeTimestamp)));
+ }
+
+ // Test for null to see if a any exchanges have been
processed first to avoid NPE
+ Object firstExchangeTimestampObj =
mBeanServer.getAttribute(routeMBean, "FirstExchangeCompletedTimestamp");
if (firstExchangeTimestampObj == null) {
// Print an empty value for scripting
System.out.println(StringEscapeUtils.unescapeJava("\tFirst Exchange Date:"));