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

Total end user response time (aggregating response time for several user actions)

mikael_bendtsen
Organizer

Management at my current client are very keen on producing dashboards showing the total time it takes to finish a certain flow in the application we monitor. I've tried explaining the downside of this such as it would also include the time a user is waiting, but they still think that it would be very interesting.

From a technical perspective on using Dynatrace my understanding is that this is not possible to achieve. A certain user action typically results in a number of web requests, and some of the pages loaded will load other pages (creating new user actions). There is no way we can group all transactions belonging to a flow together.

Please share your views on this.

8 REPLIES 8

kyle_kowalski
Dynatrace Pro
Dynatrace Pro

Hi Mikael,

What I would do in this case is set up a BT for the transaction split by the full URI path and then look at a stacked bar chart that breaks down the different pages. This would include only the load times and none of the time the user is actually waiting to proceed further, to generate a quick understanding of how long the response time of the transaction is. This could also help diagnose pages that are taking a particularly long time in that specific flow.

HTH,

Kyle

mikael_bendtsen
Organizer

Hello @Kyle,

Sorry for the late reply, I appreciate the quick feedback you gave. I am not sure I fully understand how to achieve what you are proposing though.

From which context should I create the business transaction? From the user action where the user is initiating a flow? As far as I can tell from my User Action pane the flows I am referring to are built up by several user actions. Let me illustrate with a simple example. There is a screen in our application where the user can view a list of "objects" they have interacted with recently. To complete that flow the only thing the user has to do is to click an item on a menu. This in turn opens a new window with the requested contents (this is a legacy system opening a lot of popups and new windows :/).

In the User Actions the following two lines both belong to this "flow" so I am interested in all web requests belonging to these two user actions since the total response time for the end user is slightly above 4 seconds.

Can you please elaborate a bit further?

We are using Dynatrace 6.1.

Thanks in advance.

Regards,

Mikael

Hi Mikael,

To elaborate on my response, I would add in each of the different User Action as filter measures into the BT ORd together this then will tag all of these into that BT. To check to see where an issue could lie with a particular step of the transaction I would look at a way to split on those different user actions so if they are all different URIs I would split by full URI path to break that up.

mikael_bendtsen
Organizer

Thanks for the suggestions @Kyle! I managed to get the wanted user actions in the same business transactions. Then I added splittings for Country of Visit and User Action Name, but I cannot figure out how to get the data in the same stacked bar chart. I tried right-clicking the rows shown when opening the BT and selected Show Measures in Chart, but it doesn't give me the result I want.

Regards,

Mikael

Hi Mikael,

I'm glad to hear that, below I have an example using a built in BT. This should get you close to the results you are looking for.

mikael_bendtsen
Organizer

Hi again @Kyle,

I managed to get a stacked bar chart now, thanks for your help!

One thing I don't know how to manage in a good way is that the user actions I am plotting are loading in parallel in the browser (in separate iframes), so the total end user response time would not be the response time sum for all user actions together. Do you have any thoughts around that or is the only option to disregard the sum?

Also, lets say a user performs the same use case containing these plotted user actions over and over again during the same visit resulting in many occurrences of these user actions. Currently I'm using the maximum value for each measure which would kind of show the worst case although the individual user actions might not be from the same point in time. E.g. user action 1 might have its maximum value the third time the user performed the operation, while user action 2 might have its maximum value the fifth time.

Maybe I have the wrong idea altogether how to achieve what I am looking for but I reckon that it must be a common request to be able to measure "performance" for various transactions in a system (login, add item to cart, checkout, a.s.o.). But then again, response time is only aspect of many.


Mikael,


At a certain point, it may be easier to look at using the JavaScript ADK to achieve what you want -- and you may have reached that point.


With the ADK, you could either define your own custom actions which begin and end at the right times, or you could measure the time yourself and report the value to Dynatrace.


I've attached my one-page JavaScript ADK cheat sheet, but definitely let us know if you have more questions about this possibility.


Cheat sheet for JavaScript ADK


-- Graeme

Thank you @Graeme, I will take a look at the JavaScript ADK.