Great, Thank you!
Derek Derek Bassett | Senior Software Engineer THIS TECHNOLOGY 1444 Wazee Street, Suite 310 Denver, CO 80202 thistechnology.com<http://thistechnology.com/> Watch where we can take TV. EVERYWHERE. On Mar 2, 2015, at 10:48 PM, Claus Ibsen <[email protected]<mailto:[email protected]>> wrote: Hi In the upcoming Camel 2.15 it logs at debug level and you can set the metrics registry on the component using a setter. On Tue, Mar 3, 2015 at 12:17 AM, Derek Bassett <[email protected]<mailto:[email protected]>> wrote: Hi, I want to start off by thanking everyone for all the community support for this product. We recently upgraded to Camel 2.14.2 and just started using the camel-metrics component inside our Camel Route file. We use the following command to measure http request times using coda hale metrics library. <recipientList> <simple>metrics:timer:${camelId}:${routeId}.http?action=start</simple> </recipientList> <to id="call HTTP endpoint" uri=“{{http.endpoint.uri}}”/> <recipientList> <simple>metrics:timer:${camelId}:${routeId}.http?action=stop</simple> </recipientList> I do this so I can use the camelId and routeId in the name of the metrics timer object I am trying to create. This works fine and generates the information I want to generate but leads to an interesting side effect. Inside the MetricsComponent: @Override protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception { if (metricRegistry == null) { Registry camelRegistry = getCamelContext().getRegistry(); metricRegistry = getOrCreateMetricRegistry(camelRegistry, METRIC_REGISTRY_NAME); } String metricsName = getMetricsName(remaining); MetricsType metricsType = getMetricsType(remaining); LOG.info("Metrics type: {}; name: {}", metricsType, metricsName); Endpoint endpoint = createNewEndpoint(metricRegistry, metricsType, metricsName); setProperties(endpoint, parameters); return endpoint; } You have LOG.info("Metrics type: {}; name: {}", metricsType, metricsName); which means every time I call recipientList it generates a log message. Generating an INFO log message every time I log metrics is not optimal but I can live with it. Am I doing this in the most efficient way possible given I want to set the timer name based on the CamelId and RouteId? Is there a simple way to avoid generating the LOG.info message, obviously I can turn off logging for org.apache.camel.component.metrics.MetricsComponent but I wondered if there was a way to cache the endpoint so it was not created each time? The other issue I would like to see with the current Metrics Component is I can only use the MetricRegistry named “metricRegistry." I would like to be able to configure the Component as a bean, like I do with other Component and set the metricRegistry object of my choice. I wondered if there was any technical reason why this could not be made configurable? Thank you Derek Derek Bassett | Senior Software Engineer THIS TECHNOLOGY 1444 Wazee Street, Suite 310 Denver, CO 80202 thistechnology.com<http://thistechnology.com> Watch where we can take TV. EVERYWHERE. The information contained in this e-mail message is the confidential information of THIS TECHNOLOGY, Inc. and is intended for use only by the individual or entity above. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution, or duplication of this message is strictly prohibited. If you have received this message in error, please immediately notify us by telephone and return the original message to us. Thank you. -- Claus Ibsen ----------------- Red Hat, Inc. Email: [email protected]<mailto:[email protected]> Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen hawtio: http://hawt.io/ fabric8: http://fabric8.io/ The information contained in this e-mail message is the confidential information of THIS TECHNOLOGY, Inc. and is intended for use only by the individual or entity above. If the reader of this message is not the intended recipient, you are hereby notified that any dissemination, distribution, or duplication of this message is strictly prohibited. If you have received this message in error, please immediately notify us by telephone and return the original message to us. Thank you.
