Just out of curiosity, is there a particular design reason that you can't use
variable substitution/dynamic expressions in the defintion of URI's for the
camel-metrics component?
Consider the following example. I'm reading files from a source directory, and
want to keep track of the number of records contained in each file. To pull
this off, I need to set header values to override the metric name:
from("file://source").
to("metrics:counter:source.document.count").
split(body().tokenize("\r\n|\n").
to("direct:process");
from("direct:process").
setHeater(MetricsConstants.HEADER_METRIC_NAME,
simple("source[${header.CamelFileName}].count")).
to("metrics:counter:source[].count").
...
If you have a fairly complicated integration route with several metrics to
track, this really clutters up the route. It would be much more desireable to
do variable substitution in the URI itself, like this:
from("direct:process").
to("metrics:counter:source[${header.CamelFileName}].count").
...
I'm just curious as to whether a future rev of the component might be able to
eliminate the use of Headers to override the name portion of the URI. From a
design perspective, would moving the metric name to a parameter make this any
easier to accomplish? For example:
from("direct:process").
to("metrics:counter?name=source[${header.CamelFileName}].count").
...
Either way, this component is really helping out with a requirement for my
current project!