You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (JIRA)" <ji...@apache.org> on 2015/09/22 11:22:04 UTC
[jira] [Assigned] (CAMEL-9151) Wrong statistics for subroutes
[ https://issues.apache.org/jira/browse/CAMEL-9151?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen reassigned CAMEL-9151:
----------------------------------
Assignee: Claus Ibsen
> Wrong statistics for subroutes
> ------------------------------
>
> Key: CAMEL-9151
> URL: https://issues.apache.org/jira/browse/CAMEL-9151
> Project: Camel
> Issue Type: Bug
> Components: camel-metrics
> Affects Versions: 2.15.2
> Reporter: Vincent Lebreil
> Assignee: Claus Ibsen
> Fix For: 2.16.0, 2.15.4
>
>
> Some statistics seem to be wrong for subroutes.
> MetricsStatistics.onExchangeDone method is called several times for a same exchange: first by the subroute and then by its parent route.
> The problem is that context.stop() is called several times so counters is greater than 1 for the subroute instead of one.
> A solution could be to reset the context into the exchange as soon as the stop method has been called:
> {code:title=MetricsRoutePolicy.java|borderStyle=solid}
> private static final class MetricsStatistics {
> private final Timer responses;
> private MetricsStatistics(Timer responses) {
> this.responses = responses;
> }
> public void onExchangeBegin(Exchange exchange) {
> Timer.Context context = responses.time();
> exchange.setProperty("MetricsRoutePolicy", context);
> }
> public void onExchangeDone(Exchange exchange) {
> Timer.Context context = exchange.getProperty("MetricsRoutePolicy", Timer.Context.class);
> if (context != null) {
> context.stop();
> // BUGFIX: reset to null so that context.stop() cannot be called
> // more than once.
> exchange.setProperty("MetricsRoutePolicy", null);
> }
> }
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)