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.MetricsRoutePolicyFacto >> 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/