I'm struggling to get my head round business transaction configuration for our specific use case.
Manually I can find the information I need but I would prefer if we could automate this with some business transactions and then use some charting to display the results.
We are interested in looking at one specific logged error message within the diagnose events and then also seeing which of these logged errors also have a specific set of (session related) exceptions related to them.
To do this manually:
Diagnose Events > Logging > CTRL+F to search '<logged error name here>' - this filters our specific logged error
CTRL+A to select all of the specified logged errors > drilldown > purepaths
CTRL+A to select all the purepaths related to the specified logged error > drilldown > exceptions
Exceptions > select the session related exceptions from the list i.e. '<no user id found>' and use the count column to calculate the amount of session related exceptions that relate to the logged error message.
We've already created measures for the logged error message and the session related exceptions
How do we go about turning this into a business transaction please?
Where do we need to filter, calculate and split the results?
I tried using the following BT config using only filters:
Calculate Business Transaction per - Server-Side Purepath
Count logged error message measure (count) and
Count session exception 1 (count) or
Count session exception 2 (count) or
Count session exception 3 (count) or
Count session exception 4 (count)
Response time and count - ticked
No other entries
Help much appreciated.
The configuration looks good in theory, I would also make sure that for each of your filter measures, you have the "Upper Severe" threshold set to 1 and the aggregation of the Business Transaction filter set to "last" which will give you all the purepaths with at least 1 logged error message and one of the session exceptions. Are you seeing any results come in for this?
I think the filter logic could be mucking things up as well, I'm not aware of any configurations where mixing AND/OR logic works as you would expect. If I remember correctly it might be evaluating it as A AND B OR C OR D... rather than A AND (B OR C OR D).
Perhaps try and start small and just use the log message filter with one of the exceptions and see if you can get that working.
There will definitely be an issue with the filter since mixing AND/OR will not work (to my knowledge).
Off the top of my head I don't think you'd be able to do any sort of splitting off Exceptions. If you can this might be your solution; could chart only the exceptions you're interested in and drill down off that?
But unfortunately I think your only option would be to have a filter on the log message. This would save you some manual work since from the Business Transaction dashlet you can right-click and drill down to either PurePaths or Exceptions.
The correct order of your filter would be listing each of the exceptions in "or" fashion, then the log in "and" at the end. this is due to the fact that booleans are calculated in pairwise fashion, in order. Depending on precisely what you want to generate in terms of a dashboard/chart/report, you may also want those count measures in the results field as well.
There's likely nothing to split on here unless the issue is environmental, then you might want to add Agent. If it can happen across multiple applications, you'd be wise to leave the default "Application" splitting as well.
Hope that helps!
We have an upper severe threshold set for each already so I will try small first and attempt to get the business transaction to work with one of the exceptions. I then plan to scale up using the order of filters mentioned by Rick. I had already thought the order of the AND/OR logic may have something to do with it but I hadn't actually thought of them being calculated in a pairwise fashion.
I'd really like to get this Business Transaction to work how I'd expect it to but I'm thinking that it may be possible to create a chart and drilldown from there, but that'll be the next challenge once I've exhausted the possible combinations of filters and boolean logic. But am glad to know that it is mainly the filters that require tinkering with here and not so much the splitting/ calculate fields on top of that.