Return-Path: X-Original-To: apmail-camel-commits-archive@www.apache.org Delivered-To: apmail-camel-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 3F672110B7 for ; Sat, 30 Aug 2014 14:49:10 +0000 (UTC) Received: (qmail 93797 invoked by uid 500); 30 Aug 2014 14:49:10 -0000 Delivered-To: apmail-camel-commits-archive@camel.apache.org Received: (qmail 93733 invoked by uid 500); 30 Aug 2014 14:49:10 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 93723 invoked by uid 99); 30 Aug 2014 14:49:10 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 30 Aug 2014 14:49:10 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id C5C339AB3A6; Sat, 30 Aug 2014 14:49:09 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: davsclaus@apache.org To: commits@camel.apache.org Message-Id: <0902e3b5acee465dbffc40ff0ff8fe95@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: git commit: CAMEL-7696: camel-metrics - Add a route policy to expose route stats as codehale metrics. Work in progress. Date: Sat, 30 Aug 2014 14:49:09 +0000 (UTC) Repository: camel Updated Branches: refs/heads/master e28e8ac4d -> 4769d97f1 CAMEL-7696: camel-metrics - Add a route policy to expose route stats as codehale metrics. Work in progress. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/4769d97f Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/4769d97f Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/4769d97f Branch: refs/heads/master Commit: 4769d97f17d949dd8d1d2a63233a21df7f92ca24 Parents: e28e8ac Author: Claus Ibsen Authored: Sat Aug 30 16:48:32 2014 +0200 Committer: Claus Ibsen Committed: Sat Aug 30 16:48:32 2014 +0200 ---------------------------------------------------------------------- .../routepolicy/MetricsRegistryService.java | 20 +++++++++++++- .../metrics/routepolicy/MetricsRoutePolicy.java | 22 +++++++++++++++ .../routepolicy/MetricsRoutePolicyFactory.java | 28 ++++++++++++++++++++ 3 files changed, 69 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/4769d97f/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRegistryService.java ---------------------------------------------------------------------- diff --git a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRegistryService.java b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRegistryService.java index 8ec1534..2bde7f0 100644 --- a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRegistryService.java +++ b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRegistryService.java @@ -45,6 +45,8 @@ public final class MetricsRegistryService extends ServiceSupport implements Came private boolean useJmx; private String jmxDomain = "org.apache.camel.metrics"; private boolean prettyPrint; + private TimeUnit rateUnit = TimeUnit.SECONDS; + private TimeUnit durationUnit = TimeUnit.MILLISECONDS; private transient ObjectMapper mapper; public MetricRegistry getMetricsRegistry() { @@ -87,6 +89,22 @@ public final class MetricsRegistryService extends ServiceSupport implements Came this.prettyPrint = prettyPrint; } + public TimeUnit getRateUnit() { + return rateUnit; + } + + public void setRateUnit(TimeUnit rateUnit) { + this.rateUnit = rateUnit; + } + + public TimeUnit getDurationUnit() { + return durationUnit; + } + + public void setDurationUnit(TimeUnit durationUnit) { + this.durationUnit = durationUnit; + } + @Override protected void doStart() throws Exception { if (metricsRegistry == null) { @@ -107,7 +125,7 @@ public final class MetricsRegistryService extends ServiceSupport implements Came } // json mapper - this.mapper = new ObjectMapper().registerModule(new MetricsModule(TimeUnit.SECONDS, TimeUnit.SECONDS, false)); + this.mapper = new ObjectMapper().registerModule(new MetricsModule(getRateUnit(), getDurationUnit(), false)); } @Override http://git-wip-us.apache.org/repos/asf/camel/blob/4769d97f/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicy.java ---------------------------------------------------------------------- diff --git a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicy.java b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicy.java index 100bfa7..d28044a 100644 --- a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicy.java +++ b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicy.java @@ -16,6 +16,8 @@ */ package org.apache.camel.component.metrics.routepolicy; +import java.util.concurrent.TimeUnit; + import com.codahale.metrics.Counter; import com.codahale.metrics.Meter; import com.codahale.metrics.MetricRegistry; @@ -38,6 +40,8 @@ public class MetricsRoutePolicy extends RoutePolicySupport { private boolean useJmx = true; private String jmxDomain = "org.apache.camel.metrics"; private boolean prettyPrint; + private TimeUnit rateUnit = TimeUnit.SECONDS; + private TimeUnit durationUnit = TimeUnit.MILLISECONDS; private MetricsStatistics statistics; private Route route; @@ -105,6 +109,22 @@ public class MetricsRoutePolicy extends RoutePolicySupport { this.prettyPrint = prettyPrint; } + public TimeUnit getRateUnit() { + return rateUnit; + } + + public void setRateUnit(TimeUnit rateUnit) { + this.rateUnit = rateUnit; + } + + public TimeUnit getDurationUnit() { + return durationUnit; + } + + public void setDurationUnit(TimeUnit durationUnit) { + this.durationUnit = durationUnit; + } + @Override public void onInit(Route route) { super.onInit(route); @@ -118,6 +138,8 @@ public class MetricsRoutePolicy extends RoutePolicySupport { registryService.setUseJmx(isUseJmx()); registryService.setJmxDomain(getJmxDomain()); registryService.setPrettyPrint(isPrettyPrint()); + registryService.setRateUnit(getRateUnit()); + registryService.setDurationUnit(getDurationUnit()); route.getRouteContext().getCamelContext().addService(registryService); } } catch (Exception e) { http://git-wip-us.apache.org/repos/asf/camel/blob/4769d97f/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicyFactory.java ---------------------------------------------------------------------- diff --git a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicyFactory.java b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicyFactory.java index 584db54..d4ad80d 100644 --- a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicyFactory.java +++ b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicyFactory.java @@ -16,6 +16,8 @@ */ package org.apache.camel.component.metrics.routepolicy; +import java.util.concurrent.TimeUnit; + import com.codahale.metrics.MetricRegistry; import org.apache.camel.CamelContext; import org.apache.camel.model.RouteDefinition; @@ -31,6 +33,8 @@ public class MetricsRoutePolicyFactory implements RoutePolicyFactory { private boolean useJmx; private String jmxDomain = "org.apache.camel.metrics"; private boolean prettyPrint; + private TimeUnit rateUnit = TimeUnit.SECONDS; + private TimeUnit durationUnit = TimeUnit.MILLISECONDS; /** * To use a specific {@link com.codahale.metrics.MetricRegistry} instance. @@ -78,6 +82,28 @@ public class MetricsRoutePolicyFactory implements RoutePolicyFactory { this.prettyPrint = prettyPrint; } + public TimeUnit getRateUnit() { + return rateUnit; + } + + /** + * Sets the time unit to use for requests per unit (eg requests per second) + */ + public void setRateUnit(TimeUnit rateUnit) { + this.rateUnit = rateUnit; + } + + public TimeUnit getDurationUnit() { + return durationUnit; + } + + /** + * Sets the time unit to use for timing the duration of processing a message in the route + */ + public void setDurationUnit(TimeUnit durationUnit) { + this.durationUnit = durationUnit; + } + @Override public RoutePolicy createRoutePolicy(CamelContext camelContext, String routeId, RouteDefinition routeDefinition) { MetricsRoutePolicy answer = new MetricsRoutePolicy(); @@ -85,6 +111,8 @@ public class MetricsRoutePolicyFactory implements RoutePolicyFactory { answer.setUseJmx(isUseJmx()); answer.setJmxDomain(getJmxDomain()); answer.setPrettyPrint(isPrettyPrint()); + answer.setRateUnit(getRateUnit()); + answer.setDurationUnit(getDurationUnit()); return answer; }