Hi I logged a ticket to make it out of the box using the same codehale metrics. https://issues.apache.org/jira/browse/CAMEL-8014
On Fri, Nov 7, 2014 at 4:22 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: > Yeah it looks like by default they wont use same registry because you > would need to add a registry with a name to the registry, and then > configure the metrics camel component to use a registry by its name. > > The default name to lookup is "metricRegistry" so you can do > > Map registry = new SimpleRegistry(); > registry.put("metricsRegistry", new com.codahale.metrics.MetricRegistry(); > > CamelContext camel = new DefaultCamelContext(registry); > > > > > > On Fri, Nov 7, 2014 at 4:04 PM, James L Greene <jlgree...@aep.com> wrote: >> So you're saying this is something that would have to go on the development >> roadmap? I'm writing several batch/standalone processes which I need to >> capture metrics like this, to be recorded in a data reconciliation system. >> This component seemed like a good way to go, but if I can't capture the >> metrics at the end of the job, I might have to figure out another way to do >> this. >> >> Regards, >> Jim Greene >> Principal IT Architect, Enterprise Architecture & Strategy >> American Electric Power >> One Riverside Plaza, 11th Floor >> Columbus, OH 43125 >> Phone: (w) 614-716-2617 >> Email: jlgree...@aep.com >> >> >> -----Original Message----- >> From: Claus Ibsen [mailto:claus.ib...@gmail.com] >> Sent: Friday, November 07, 2014 9:26 AM >> To: users@camel.apache.org >> Subject: Re: camel-metrics Component >> >> This is an EXTERNAL email. STOP. THINK before you CLICK links or OPEN >> attachments. >> >> ********************************************************************** >> Ah the route policy and the metrics component is not identical. They are >> just hosted in the same JAR. >> >> The route policy is self container what details it records. I guess we could >> combine those so you can also do like you to add custom counters with the >> Camel routes. >> >> eg a bit of history then camel-metrics was first only a regular component. >> The route policy was added later to make it easy to turn that on in a single >> spot, and get metrics for all your routes. >> >> On Fri, Nov 7, 2014 at 3:07 PM, James L Greene <jlgree...@aep.com> wrote: >>> Claus, >>> >>> I gave your suggestion a try. There was no change in the output. The >>> camel-metrics component is displaying the value of the counters via the >>> logger, but the counters collection is empty when I try to access it >>> programmatically. >>> >>> Regards, >>> Jim Greene >>> Principal IT Architect, Enterprise Architecture & Strategy American >>> Electric Power One Riverside Plaza, 11th Floor Columbus, OH 43125 >>> Phone: (w) 614-716-2617 >>> Email: jlgree...@aep.com >>> >>> >>> -----Original Message----- >>> From: Claus Ibsen [mailto:claus.ib...@gmail.com] >>> Sent: Friday, November 07, 2014 1:27 AM >>> To: users@camel.apache.org >>> Subject: Re: camel-metrics Component >>> >>> This is an EXTERNAL email. STOP. THINK before you CLICK links or OPEN >>> attachments. >>> >>> ********************************************************************** >>> Try setting the route policy before adding the routes >>> >>> On Fri, Nov 7, 2014 at 1:35 AM, James L Greene <jlgree...@aep.com> wrote: >>>> I have written a simple Java class to attempt to exercise the >>>> camel-metrics component. In this example, I'm writing a standalone Java >>>> batch process, which will read files from an input directory, and deposit >>>> the files in an output directory. I'm attempting to use the camel-metrics >>>> component to capture how many files were read (using the name >>>> "files-processed"). I've configured the class to only run for seventy >>>> seconds, giving the camel-metrics component an opportunity to output the >>>> values of the metric being captured to the application log (which its >>>> configured to do at sixty seconds intervals, and which appears to work >>>> properly). >>>> >>>> Prior to suspending/stopping my CamelContext, I attempted to retrieve the >>>> metrics as described in the camel-metrics component documentation. >>>> Unfortunately, when I look at the contents of the metrics, my custom >>>> metric is nowhere to be found. Below, please find the source for the >>>> sample class that I created, and its logged output. >>>> >>>> Am I doing something wrong? >>>> >>>> ============================ >>>> >>>> Camel Version >>>> 2.14.0 >>>> >>>> JRE Version >>>> java version "1.7.0_25" >>>> Java(TM) SE Runtime Environment (build 1.7.0_25-b17) Java HotSpot(TM) >>>> 64-Bit Server VM (build 23.25-b01, mixed mode) >>>> >>>> ============================ >>>> >>>> package ... >>>> >>>> import com.codahale.metrics.Counter; >>>> import com.codahale.metrics.MetricRegistry; >>>> import java.util.SortedMap; >>>> import org.apache.camel.CamelContext; import >>>> org.apache.camel.builder.RouteBuilder; >>>> import >>>> org.apache.camel.component.metrics.routepolicy.MetricsRegistryService >>>> ; >>>> import >>>> org.apache.camel.component.metrics.routepolicy.MetricsRoutePolicyFact >>>> o ry; import org.apache.camel.impl.DefaultCamelContext; >>>> import org.slf4j.Logger; >>>> import org.slf4j.LoggerFactory; >>>> >>>> public class Main { >>>> >>>> public static void main(String[] args) throws Exception { >>>> Logger LOG = LoggerFactory.getLogger(Main.class); >>>> >>>> CamelContext context = new DefaultCamelContext(); >>>> >>>> RouteBuilder rb = new RouteBuilder() { >>>> @Override >>>> public void configure() throws Exception { >>>> from("file://c:/test/input"). >>>> routeId("testroute"). >>>> log("Processing file [${header.CamelFileName}]"). >>>> to("metrics:counter:files-processed"). >>>> to("file://c:/test/output"); >>>> } >>>> }; >>>> context.addRoutes(rb); >>>> >>>> MetricsRoutePolicyFactory mrpf = new MetricsRoutePolicyFactory(); >>>> context.addRoutePolicyFactory(mrpf); >>>> >>>> context.start(); >>>> >>>> int sleepCounter = 0; >>>> while (sleepCounter < 7) { >>>> sleepCounter++; >>>> Thread.sleep(10000); >>>> LOG.info("Zzz...({} seconds)", sleepCounter * 10); >>>> } >>>> >>>> MetricsRegistryService regSvc = >>>> context.hasService(MetricsRegistryService.class); >>>> if(regSvc != null) { >>>> // Dump the statistics to the log in JSON format. >>>> regSvc.setPrettyPrint(true); >>>> LOG.info(regSvc.dumpStatisticsAsJson()); >>>> >>>> // Do it again, retrieving the map of counters from the >>>> MetricRegistry object. >>>> LOG.info("----------"); >>>> MetricRegistry reg = regSvc.getMetricsRegistry(); >>>> SortedMap<String, Counter> counters = reg.getCounters(); >>>> LOG.info("Keys found {{}]", counters.keySet().size()); >>>> for(String key : counters.keySet()) { >>>> LOG.info("--- key [{}] - value [{}]", key, >>>> counters.get("key").getCount()); >>>> } >>>> } else { >>>> System.out.println("Couldn't find MetricsRegisteryService >>>> instance"); >>>> } >>>> context.suspend(); >>>> context.stop(); >>>> } >>>> } >>>> >>>> ============================ >>>> --- exec-maven-plugin:1.2.1:exec (default-cli) @ metricstest --- >>>> 2014-11-06 19:15:23 INFO DefaultCamelContext :1731 - Apache Camel >>>> 2.14.0 (CamelContext: camel-1) is starting >>>> 2014-11-06 19:15:23 INFO ManagedManagementStrategy : 187 - JMX is enabled >>>> 2014-11-06 19:15:23 INFO DefaultTypeConverter : 50 - Loaded 178 >>>> type converters >>>> 2014-11-06 19:15:23 INFO MetricsComponent : 108 - Creating new >>>> default MetricRegistry >>>> 2014-11-06 19:15:23 INFO MetricsComponent : 57 - Metrics type: >>>> counter; name: files-processed >>>> 2014-11-06 19:15:23 INFO DefaultCamelContext :1931 - >>>> AllowUseOriginalMessage is enabled. If access to the original message is >>>> not needed, then its recommended to turn this option off as it may improve >>>> performance. >>>> 2014-11-06 19:15:23 INFO DefaultCamelContext :1941 - StreamCaching >>>> is not in use. If using streams then its recommended to enable stream >>>> caching. See more details at http://camel.apache.org/stream-caching.html >>>> 2014-11-06 19:15:23 INFO DefaultCamelContext :2453 - Route: >>>> testroute started and consuming from: Endpoint[file://c:/mdm/test/input] >>>> 2014-11-06 19:15:23 INFO DefaultCamelContext :1766 - Total 1 >>>> routes, of which 1 is started. >>>> 2014-11-06 19:15:23 INFO DefaultCamelContext :1767 - Apache Camel >>>> 2.14.0 (CamelContext: camel-1) started in 0.608 seconds >>>> 2014-11-06 19:15:24 INFO testroute : 96 - Processing >>>> file [testfile1.txt] >>>> 2014-11-06 19:15:25 INFO testroute : 96 - Processing >>>> file [testfile2.txt] >>>> 2014-11-06 19:15:25 INFO testroute : 96 - Processing >>>> file [testfile3.txt] >>>> 2014-11-06 19:15:33 INFO Main : 47 - Zzz...(10 >>>> seconds) >>>> 2014-11-06 19:15:43 INFO Main : 47 - Zzz...(20 >>>> seconds) >>>> 2014-11-06 19:15:53 INFO Main : 47 - Zzz...(30 >>>> seconds) >>>> 2014-11-06 19:16:03 INFO Main : 47 - Zzz...(40 >>>> seconds) >>>> 2014-11-06 19:16:13 INFO Main : 47 - Zzz...(50 >>>> seconds) >>>> 2014-11-06 19:16:23 INFO MetricsComponent : 104 - type=COUNTER, >>>> name=files-processed, count=3 >>>> 2014-11-06 19:16:23 INFO Main : 47 - Zzz...(60 >>>> seconds) >>>> 2014-11-06 19:16:33 INFO Main : 47 - Zzz...(70 >>>> seconds) >>>> 2014-11-06 19:16:34 INFO Main : 53 - { >>>> "version" : "3.0.0", >>>> "gauges" : { }, >>>> "counters" : { }, >>>> "histograms" : { }, >>>> "meters" : { }, >>>> "timers" : { >>>> "camel-1:testroute.responses" : { >>>> "count" : 3, >>>> "max" : 157.060387, >>>> "mean" : 88.249202, >>>> "min" : 44.265085, >>>> "p50" : 63.422134, >>>> "p75" : 157.060387, >>>> "p95" : 157.060387, >>>> "p98" : 157.060387, >>>> "p99" : 157.060387, >>>> "p999" : 157.060387, >>>> "stddev" : 60.35712482735794, >>>> "m15_rate" : 0.558194480485237, >>>> "m1_rate" : 0.20307925506404548, >>>> "m5_rate" : 0.48311899441084233, >>>> "mean_rate" : 0.04263368988938351, >>>> "duration_units" : "milliseconds", >>>> "rate_units" : "calls/second" >>>> } >>>> } >>>> } >>>> 2014-11-06 19:16:34 INFO Main : 54 - ---------- >>>> 2014-11-06 19:16:34 INFO Main : 57 - Keys found {0] >>>> 2014-11-06 19:16:34 INFO DefaultCamelContext :1648 - Apache Camel >>>> 2.14.0 (CamelContext: camel-1) is suspending >>>> 2014-11-06 19:16:34 INFO DefaultShutdownStrategy : 172 - Starting to >>>> graceful shutdown 1 routes (timeout 300 seconds) >>>> 2014-11-06 19:16:34 INFO DefaultShutdownStrategy : 606 - Route: >>>> testroute suspend complete, was consuming from: >>>> Endpoint[file://c:/mdm/test/input] >>>> 2014-11-06 19:16:34 INFO DefaultShutdownStrategy : 222 - Graceful >>>> shutdown of 1 routes completed in 0 seconds >>>> 2014-11-06 19:16:34 INFO DefaultCamelContext :1686 - Apache Camel >>>> 2.14.0 (CamelContext: camel-1) is suspended in 0.032 seconds >>>> 2014-11-06 19:16:34 INFO DefaultCamelContext :1958 - Apache Camel >>>> 2.14.0 (CamelContext: camel-1) is shutting down >>>> 2014-11-06 19:16:34 INFO DefaultShutdownStrategy : 172 - Starting to >>>> graceful shutdown 1 routes (timeout 300 seconds) >>>> 2014-11-06 19:16:34 INFO DefaultShutdownStrategy : 609 - Route: >>>> testroute shutdown complete, was consuming from: >>>> Endpoint[file://c:/mdm/test/input] >>>> 2014-11-06 19:16:34 INFO DefaultShutdownStrategy : 222 - Graceful >>>> shutdown of 1 routes completed in 0 seconds >>>> 2014-11-06 19:16:34 INFO DefaultCamelContext :2040 - Apache Camel >>>> 2.14.0 (CamelContext: camel-1) uptime 1 minute >>>> 2014-11-06 19:16:34 INFO DefaultCamelContext :2041 - Apache Camel >>>> 2.14.0 (CamelContext: camel-1) is shutdown in 0.000 seconds >>>> --------------------------------------------------------------------- >>>> - >>>> -- >>>> BUILD SUCCESS >>>> --------------------------------------------------------------------- >>>> - >>>> -- >>>> Total time: 1:12.415s >>>> Finished at: Thu Nov 06 19:16:34 EST 2014 Final Memory: 5M/120M >>>> --------------------------------------------------------------------- >>>> - >>>> -- >>> >>> >>> >>> -- >>> Claus Ibsen >>> ----------------- >>> Red Hat, Inc. >>> Email: cib...@redhat.com >>> Twitter: davsclaus >>> Blog: http://davsclaus.com >>> Author of Camel in Action: http://www.manning.com/ibsen >>> hawtio: http://hawt.io/ >>> fabric8: http://fabric8.io/ >> >> >> >> -- >> Claus Ibsen >> ----------------- >> Red Hat, Inc. >> Email: cib...@redhat.com >> Twitter: davsclaus >> Blog: http://davsclaus.com >> Author of Camel in Action: http://www.manning.com/ibsen >> hawtio: http://hawt.io/ >> fabric8: http://fabric8.io/ > > > > -- > Claus Ibsen > ----------------- > Red Hat, Inc. > Email: cib...@redhat.com > Twitter: davsclaus > Blog: http://davsclaus.com > Author of Camel in Action: http://www.manning.com/ibsen > hawtio: http://hawt.io/ > fabric8: http://fabric8.io/ -- Claus Ibsen ----------------- Red Hat, Inc. Email: cib...@redhat.com Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen hawtio: http://hawt.io/ fabric8: http://fabric8.io/