CA Tuesday Tip: APM Transaction Definition Setup - Part 2 Tactics

Discussion created by Hallett_German Employee on Feb 12, 2012
Latest reply on Feb 15, 2012 by MaryGreening
CA Wily Tuesday Tip by Hallett German, Sr. Support Engineer for 2/14/2012

APM Transaction Definition Setup - Part 2 Tactics

Last month, we began looking at creating transaction definitions including reviewing some possible implementation strategies. This article continues exploring this topic by looking at tactics when creating transaction definitions.

These can be covered through a series of questions.
1) Is there something in the request or response that can uniquely identify a transaction?

At a minimum, there needs to be at one parameter that is defined. Typically this is the path (/mycompany) part of the URL. However, if the same path is common to multiple environments (such as QA and Production) or applications, then at least one other parameter has to be added (such as host which is the fully-qualified domain name of the URL). Additional parameters may be selected as well.

What do you do if there is only a host and common URL which is used for multiple transactions? In this case, you can only set up one definition that will cover those conditions. However, when the definition is defined and defects appear, then you may be able to split the transactions into multiple definitions to handle the various conditions. Or you may see all the defects look the same and settle for the one definition.

2) How many transaction parameters should I match on?
Typically one to four parameters. Remember that this is an AND not OR condition so each parameter-value pair must be matched. Too few conditions may result in overlapping conditions. Too many conditions and the definition may not be matched at all resulting in undercount.

3) Should I use Regular expressions or does not exist?
There are certain situations where using a wildcard (*) to match all or part of a string will fall short. Suppose you are matching against a list of host names where the name is target10-target19. This can be done very concisely in a regex (target[1][0123456789]). Another case is matching on combinations of static and dynamic text such as (.*statictext.*) to match on static text somewhere in a string. However, adding a lot of regular expressions can add undesired CPU utilization to an APM environment. Does not exist is a great matching rule when you have two components but one includes a parameter and the other does not. So in this case, the Does Not Exist acts as a tiebreaker between two definitions.

4) Do I need name.html, name(1).html, name(2).html etc.?
Sometimes a component is called in multiple requests or responses. So the definitions will have the same name multiple times. How many of these do you need for your definition? Typically, one should re-record to see if the same number of components appears and then determine which is the better definition.

5) Should I change my identifying transaction?
APM does a good job of finding the identifying (typically first) transaction. But sometimes after getting defects, you want to switch a transaction to get more meaningful parameters. As an iterative process, keep trying various transaction components until you get the transaction results that are desired.

6) Should I use a wildcard in my component name or value?
The answer depends on how inclusive or exclusive you want your definition to be. Do you want your definition to include more or less conditions (such asabcd* abcd* or abc* or ab* or a* from least to most inclusive).

7) Is there a parameter present in the application that I am not capturing?
Sometimes there is a needed transaction parameter that does not show up in the definition. Check to see 1) if the parameter is being stripped by some network device, 2) APM is unable to record the parameter and may need a HTTP Plug-in to capture or 3) some other factor.

Questions for discussion:
1) How many transaction parameters do you typically use to create a transaction definition?
2) How many iterations does it typically take for you to get the definition correct?
3) How do you handle the name1....name99.html situation?
4) How do you handle the situation where your transaction definition is not unique but you still want to use it?