Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to exclude an argument value in a Filter measure

Dynatrace Advisor
Dynatrace Advisor

Hi all,

I'm working on a BT but I hit a roadblocker when I tried to exclude an argument value using a Filter measure.

Here's the background: A XML file containing a bunch of information gets passed from the Siebel frontend to the EAI tier, and I have instrumented the method that reads in the XML file. There is a particular parameter <TMSegmentGroup> which is of interest for the customer for business analysis.

As you can see the parameter has multiple values, and customer has requested me to create two BTs to split the results. "Consumer" will be grouped in a BT call Mass Market, and the rest in a BT call Manage Account.

BT Mass Market is working fine:

However BT Manage Account is not:

As you can see "Consumer" is still being picked up by this BT. Here's the configuration for BT Manage Account:

And the measure configuration:

It seems like "not contains" doesn't work in this case or I am missing something?




You're on the right track but there's some subtlety about how method filters work when the method is called more than once in a PurePath.

To review, the first filter measure -- the one that's working -- says "does the PurePath contain at least one method call with name = getBusinessEventName and argument contains '...Consumer...' ".

The second filter measure -- the one you show us that doesn't work -- says "does the PurePath contain at least one method call with name = getBusinessEventName and argument does not contain '... Consumer ...' ". But since the method is called multiple times per PurePath, the filter can be satisfied by a PurePath that contains one method that doesn't match '... Consumer ...' as well as another method that doesn.

A first cut at avoiding this problem would be to take a copy of the first, working measure and flip the threshold so that the upper threshold is blank and the lower threshold is 0. This new filter would mean "does the PurePath contain zero method calls with name = getBusinessEventName and argument contains '... Consumer ...'. This clearly excludes any Consumer transaction. But this filter also matches any PurePath that doesn't contain a call to getBusinessEventName at all.

To get the filter right, you could add an additional method name filter so that only PurePaths that had at least one call to getBusinessEventName were included. This would work, but in your case is not necessary, since the "SPLIT - Argument Value TMSegmentGroup" will act as an implicit filter. In any case, you can try it and see.

-- Graeme

Hi Graeme, thanks for your response. Your suggestion worked perfectly! Simple but elegant. 😃

-- Chris