jmxtrans-agent icon indicating copy to clipboard operation
jmxtrans-agent copied to clipboard

Ability to exclude/filter attributes

Open dhay opened this issue 7 years ago • 2 comments

In our applications, we use the Codahale/Dropwizard metrics library to publish our metrics to JMX. Rather than configure each metric, I'd like to grab everything under a particular domain. For example, something like this:

<query objectName="MyApplication-metrics:type=*,group=*,name=*"
       resultAlias="app.%type%.%group%.%name%.#attribute#"/>

However, because of the way the metrics are published to JMX, I end up with metrics that aren't really metrics. For example:

myapplication.app.API.ALL_statusSeries_5xx.responseTime.RateUnit events/second 1505500740
myapplication.app.API.ALL_statusSeries_5xx.responseTime.DurationUnit milliseconds 1505500740

What I'd really like to do is specify a set of attributes not to include. The configuration might look something like this:

<query objectName="MyApplication-metrics:type=*,group=*,name=*"
       excludeAttributes="RateUnit,DurationUnit"
       resultAlias="app.%type%.%group%.%name%.#attribute#"/>

I'm guessing that some might want to do something similar when processing CompositeData, though I don't personally have that need at the moment.

Thanks!

dhay avatar Sep 15 '17 18:09 dhay

Another way to solve this would be to overload the attribute and attributes field such that any attributes preceded by a minus sign (-) would be excluded. I've started a branch using this approach for a future pull request.

For example

<query objectName="MyApplication-metrics:type=*,group=*,name=*"
       attributes="-RateUnit,-DurationUnit"
       resultAlias="app.%type%.%group%.%name%.#attribute#"/>

dhay avatar Jul 27 '18 17:07 dhay

smart idea @dhay !

cyrille-leclerc avatar Aug 02 '18 11:08 cyrille-leclerc