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]> 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 > 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] Twitter: davsclaus Blog: http://davsclaus.com Author of Camel in Action: http://www.manning.com/ibsen hawtio: http://hawt.io/ fabric8: http://fabric8.io/
