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/

Reply via email to