camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Derek Bassett <derek.bass...@thistech.com>
Subject Re: Metrics Component generating info messages
Date Tue, 03 Mar 2015 16:21:03 GMT
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 <claus.ibsen@gmail.com<mailto:claus.ibsen@gmail.com>>
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
<derek.bassett@thistech.com<mailto:derek.bassett@thistech.com>> 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: cibsen@redhat.com<mailto:cibsen@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/

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.
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message