Author: davsclaus
Date: Sun Dec 18 08:48:04 2011
New Revision: 1220357
URL: http://svn.apache.org/viewvc?rev=1220357&view=rev
Log:
CAMEL-4791: Added details about first/last exchangeId for completed/failued to
JMX stats.
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedPerformanceCounterMBean.java
camel/trunk/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedPerformanceCounter.java
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRedeliverTest.java
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedStatisticsTest.java
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedPerformanceCounterMBean.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedPerformanceCounterMBean.java?rev=1220357&r1=1220356&r2=1220357&view=diff
==============================================================================
---
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedPerformanceCounterMBean.java
(original)
+++
camel/trunk/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedPerformanceCounterMBean.java
Sun Dec 18 08:48:04 2011
@@ -56,15 +56,27 @@ public interface ManagedPerformanceCount
@ManagedAttribute(description = "Last Exchange Completed Timestamp")
Date getLastExchangeCompletedTimestamp();
+ @ManagedAttribute(description = "Last Exchange Completed ExchangeId")
+ String getLastExchangeCompletedExchangeId();
+
@ManagedAttribute(description = "First Exchange Completed Timestamp")
Date getFirstExchangeCompletedTimestamp();
+ @ManagedAttribute(description = "First Exchange Completed ExchangeId")
+ String getFirstExchangeCompletedExchangeId();
+
@ManagedAttribute(description = "Last Exchange Failed Timestamp")
Date getLastExchangeFailureTimestamp();
+ @ManagedAttribute(description = "Last Exchange Failed ExchangeId")
+ String getLastExchangeFailureExchangeId();
+
@ManagedAttribute(description = "First Exchange Failed Timestamp")
Date getFirstExchangeFailureTimestamp();
+ @ManagedAttribute(description = "First Exchange Failed ExchangeId")
+ String getFirstExchangeFailureExchangeId();
+
@ManagedAttribute(description = "Statistics enabled")
boolean isStatisticsEnabled();
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=1220357&r1=1220356&r2=1220357&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
Sun Dec 18 08:48:04 2011
@@ -37,9 +37,13 @@ public abstract class ManagedPerformance
private Statistic lastProcessingTime;
private Statistic meanProcessingTime;
private Statistic firstExchangeCompletedTimestamp;
+ private String firstExchangeCompletedExchangeId;
private Statistic firstExchangeFailureTimestamp;
+ private String firstExchangeFailureExchangeId;
private Statistic lastExchangeCompletedTimestamp;
+ private String lastExchangeCompletedExchangeId;
private Statistic lastExchangeFailureTimestamp;
+ private String lastExchangeFailureExchangeId;
private boolean statisticsEnabled = true;
public void init(ManagementStrategy strategy) {
@@ -75,9 +79,13 @@ public abstract class ManagedPerformance
lastProcessingTime.reset();
meanProcessingTime.reset();
firstExchangeCompletedTimestamp.reset();
+ firstExchangeCompletedExchangeId = null;
firstExchangeFailureTimestamp.reset();
+ firstExchangeFailureExchangeId = null;
lastExchangeCompletedTimestamp.reset();
+ lastExchangeCompletedExchangeId = null;
lastExchangeFailureTimestamp.reset();
+ lastExchangeFailureExchangeId = null;
}
public long getExchangesCompleted() throws Exception {
@@ -121,21 +129,37 @@ public abstract class ManagedPerformance
return value > 0 ? new Date(value) : null;
}
+ public String getLastExchangeCompletedExchangeId() {
+ return lastExchangeCompletedExchangeId;
+ }
+
public Date getFirstExchangeCompletedTimestamp() {
long value = firstExchangeCompletedTimestamp.getValue();
return value > 0 ? new Date(value) : null;
}
+ public String getFirstExchangeCompletedExchangeId() {
+ return firstExchangeCompletedExchangeId;
+ }
+
public Date getLastExchangeFailureTimestamp() {
long value = lastExchangeFailureTimestamp.getValue();
return value > 0 ? new Date(value) : null;
}
+ public String getLastExchangeFailureExchangeId() {
+ return lastExchangeFailureExchangeId;
+ }
+
public Date getFirstExchangeFailureTimestamp() {
long value = firstExchangeFailureTimestamp.getValue();
return value > 0 ? new Date(value) : null;
}
+ public String getFirstExchangeFailureExchangeId() {
+ return firstExchangeFailureExchangeId;
+ }
+
public boolean isStatisticsEnabled() {
return statisticsEnabled;
}
@@ -163,6 +187,10 @@ public abstract class ManagedPerformance
}
lastExchangeCompletedTimestamp.updateValue(now);
+ if (firstExchangeCompletedExchangeId == null) {
+ firstExchangeCompletedExchangeId = exchange.getExchangeId();
+ }
+ lastExchangeCompletedExchangeId = exchange.getExchangeId();
// update mean
long count = exchangesCompleted.getValue();
@@ -184,6 +212,10 @@ public abstract class ManagedPerformance
}
lastExchangeFailureTimestamp.updateValue(now);
+ if (firstExchangeFailureExchangeId == null) {
+ firstExchangeFailureExchangeId = exchange.getExchangeId();
+ }
+ lastExchangeFailureExchangeId = exchange.getExchangeId();
}
}
Modified:
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRedeliverTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRedeliverTest.java?rev=1220357&r1=1220356&r2=1220357&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRedeliverTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedRedeliverTest.java
Sun Dec 18 08:48:04 2011
@@ -22,6 +22,7 @@ import javax.management.ObjectName;
import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
/**
*
@@ -31,7 +32,8 @@ public class ManagedRedeliverTest extend
public void testRedeliver() throws Exception {
MBeanServer mbeanServer = getMBeanServer();
- getMockEndpoint("mock:foo").expectedMessageCount(1);
+ MockEndpoint mock = getMockEndpoint("mock:foo");
+ mock.expectedMessageCount(1);
Object out = template.requestBody("direct:start", "Hello World");
assertEquals("Error", out);
@@ -54,11 +56,22 @@ public class ManagedRedeliverTest extend
num = (Long) mbeanServer.getAttribute(on, "ExchangesCompleted");
assertEquals(0, num.longValue());
- num = (Long) mbeanServer.getAttribute(on, "ExchangesFailed");
+ num = (Long) mbeanServer.getAttribute(on, "ExchangesTotal");
assertEquals(5, num.longValue());
+ // there should be 5 failed exchanges (1 first time, and 4 redelivery
attempts)
+ num = (Long) mbeanServer.getAttribute(on, "ExchangesFailed");
+ assertEquals(5, num.longValue());
+
+ // and we tried to redeliver the exchange 4 times, before it failed
num = (Long) mbeanServer.getAttribute(on, "Redeliveries");
assertEquals(4, num.longValue());
+
+ String first = (String) mbeanServer.getAttribute(on,
"FirstExchangeFailureExchangeId");
+ assertEquals(mock.getReceivedExchanges().get(0).getExchangeId(),
first);
+
+ String last = (String) mbeanServer.getAttribute(on,
"LastExchangeFailureExchangeId");
+ assertEquals(mock.getReceivedExchanges().get(0).getExchangeId(), last);
}
@Override
Modified:
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedStatisticsTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedStatisticsTest.java?rev=1220357&r1=1220356&r2=1220357&view=diff
==============================================================================
---
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedStatisticsTest.java
(original)
+++
camel/trunk/camel-core/src/test/java/org/apache/camel/management/ManagedStatisticsTest.java
Sun Dec 18 08:48:04 2011
@@ -21,6 +21,7 @@ import javax.management.MBeanServer;
import javax.management.ObjectName;
import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
/**
* @version
@@ -39,6 +40,9 @@ public class ManagedStatisticsTest exten
// use route to get the total time
Long completed = (Long) mbeanServer.getAttribute(on,
"ExchangesCompleted");
assertEquals(0, completed.longValue());
+
+ MockEndpoint result = getMockEndpoint("mock:result");
+ result.expectedMessageCount(5);
// send in 5 messages
template.sendBody("direct:start", "A");
@@ -47,9 +51,23 @@ public class ManagedStatisticsTest exten
template.sendBody("direct:start", "D");
template.sendBody("direct:start", "E");
+ assertMockEndpointsSatisfied();
+
// should be 5 on the route
completed = (Long) mbeanServer.getAttribute(on, "ExchangesCompleted");
assertEquals(5, completed.longValue());
+
+ String first = (String) mbeanServer.getAttribute(on,
"FirstExchangeCompletedExchangeId");
+ assertEquals(result.getReceivedExchanges().get(0).getExchangeId(),
first);
+
+ String firstFail = (String) mbeanServer.getAttribute(on,
"FirstExchangeFailureExchangeId");
+ assertNull(firstFail);
+
+ String last = (String) mbeanServer.getAttribute(on,
"LastExchangeCompletedExchangeId");
+ assertEquals(result.getReceivedExchanges().get(4).getExchangeId(),
last);
+
+ String lastFail = (String) mbeanServer.getAttribute(on,
"LastExchangeFailureExchangeId");
+ assertNull(lastFail);
// should be 5 on the processors
ObjectName foo =
ObjectName.getInstance("org.apache.camel:context=localhost/camel-1,type=processors,name=\"foo\"");