I have created a measure to split the purepath based on argument value. Attached an image for your reference.
Now, I have added a sensor for that method and made it "Active & start purepath"
I created 2 BT's and added the split.
Eg; Split by argument value "Family" & "Transform"
When I open the purepath of 2 BT's, I see that the purepath response time of both the BT is coming as same.
In the purepath of BT, I see the argument value for the both the BT. i.e I see "Family" & "Transform"
Could you please assist me where I am going wrong?
Hi. Could you export PurePaths that with "Familiy" & "Transform" so that we can have a look at it?
Business Transactions by default always return the "PurePath Response Time" as the result measure and not the method execution time of the method where you extract the argument value from. There is an option to do that but this requires you to also add a Method Execution Time measure and add that to the List of Result Measures.
If you attach the PurePaths it will be easier though to tell you how you need to configure your BTs
Please find attached purepath
In the purepath, you will see 5 entries of executeTask of TaskExecuter class.
So if we are spiltting by argument value, then there should be 5 purepaths. Isn't it?
You exported 3 PurePaths. In these 3 PurePaths i see a total of 15 TaskExecuter.executeTask with different argument values such as "PublishToPreview", "PublishToPreviewPreparation"
I would like to understand WHAT type of output you want from that Business Transaction. Do you want to see how often this method gets executed per first parameter value and what the execution time of that method is?
Oh my appologies.I wanted to export only 1 purepath.
From the business transaction I want to split by argument value (which is happening now). But in all the purepath there are 5 entries of TaskExecuter.executeTask.
What I want is the purepath should have only 1 entry of TaskExecuter.executeTask.
If I get 1 entry per purepath, then the execution time would automatically come correct.
Please correct me if I am going wrong.
In your case this is not possible because your PurePath is started by executeTask which then makes 4 nested calls to executeTask. There is no way you can physically split these PurePaths in the moment.
A Business Transaction can tell you how many PurePaths show an invocation of that method PER method argument and also what the total execution time is. I hope this is what you want. To achieve that you have to use a little "trick". Before I tell you how this works let me ask you if this result makes sense to you. Of the 3 PPs you sent me I can see that these 3 Parameter Values got passed to the executeTask method. The Avg and Sum column show you the total and avg. execution time of these method invocations. The "Count" still shows 3 for all of them. Why? Because the Count in this case reflects the number of PurePaths but not the number of invocations
I was able to split the purepath based on the argument value. I performed following steps
Since the ExecuteTask is called asynchronously I made Thread Start Tagging as inactive
Is it alright to inactive "Thread Start Tagging".? Or do you foresee any issues on doing it?
I want purepath per invocation of that method, which I could do by making Thread Start Tagging inactive.
If I make Thread Start Tagging inactive, can there be issues in purepath getting stitched in cluster environment?
Please assist or suggest on this approach.
sorry for the late reply
So - turning off your Thread Tagging Sensor means that you will also loose any other tracing of PurePaths across thread boundaries.
My approach didnt require to change anything in the tagging sensor. Check out this stored session where I added the Business Transaction "Split by executeTask argument". check out the measures I've used and especially focus on the measure definition. Edit the measure "Argument value TaskExecutor.executeTask" -> click on the Details Tab and scroll all the way to the bottom where it says "Transaction". I enabled the "Grouping Measurement" which is essential here
So the business transaction which you created has a measure just like what I have created but the difference is that you have enabled Group Measurement.
Is that correct?
My Business Transaction has a split by first argument value of executeTask method
Thank you, the solution you provided is working as I was expecting. Although the purepath are not getting split which I believe is not feasible unless I inactive Thread Tagging.
As per your suggestion having Thread Tagging inactive might cause an issue of stitching the purepath in case of cluster environment, right?
I am using a Business Transaction Hotspot dashlet, wherein there is a dropdown to split by a single value. Isn't there a option to give 2 split values?