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.

Reply via email to