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

This product reached the end of support date on March 31, 2021.

Splitting is not working as expected

ahanchat
Guide

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?


 Thanks
Anirudha



 

15 REPLIES 15

andreas_grabner
Dynatrace Guru
Dynatrace Guru

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

Hi Andreas,

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?

Thanks
Anirudha

andreas_grabner
Dynatrace Guru
Dynatrace Guru

Hi

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?

Andi

Hi,

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.

Thanks
Anirudha

andreas_grabner
Dynatrace Guru
Dynatrace Guru

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

Andi

Hi

I was able to split the purepath based on the argument value. I performed following steps

  1. Created a sensor group, added a sensor for TaskExecuter.executeTask
  2. Made the sensor - Active & Start Purepath
  3. Made Thread Start tagging as inactive 

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?

Thanks
Anirudha

ahanchat
Guide

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.

Thanks
Anirudha

ahanchat
Guide

Hi Andreas,

Could you please provide your insight on the adopted approach?
I appreciate your support on this front

Thanks
Anirudha

andreas_grabner
Dynatrace Guru
Dynatrace Guru

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

SplitByExecutTaskArgument.dts

Andi

ahanchat
Guide

I am unable to import the dts file.

It says the client version conflict.

My client version is 6.1.0.7880

Thanks
Anirudha

ahanchat
Guide

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

Thanks
Anirudha

ahanchat
Guide

I am fine if you can provide the steps of creating the measure and BT, if it is difficult to send the session.
Your support on this is highly appreciated

andreas_grabner
Dynatrace Guru
Dynatrace Guru

sorry about uploading a session file that you couldnt read. i am already on 6.2 and thats why you ran into that error.

here are the screenshots of the BT that I've created - hope that helps

Hi Andreas,

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?

Thanks
Anirudha

You can specify a second split measure - BUT - you will end up getting results for each individual splitting and not the cross product