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

Manual Instrumentation DtRum API

Piermarco
Frequent Guest

Hello everyone,

PROBLEM: We're currently in the process of instrumenting a web application in Dynatrace, and while we have OneAgent installed, we've noticed discrepancies in the data captured by RUM (Real User Monitoring) compared to our actual user experience on the web app. For instance, visually, the page appears to load within 5 seconds, but it takes around 20 seconds before it becomes fully functional for interaction.

To address this, we're considering switching to manual instrumentation to gather as much accurate information as possible. Our goal is to understand if it's feasible to nest `enterAction` and `leaveAction` in Dynatrace. Let me elaborate further: we aim to establish a primary action that signifies the complete rendering of the page, and within this primary action, we'd like to include smaller actions to track additional details.

QUESTION: Therefore, my question is twofold: Is it possible to achieve this nesting of actions in Dynatrace and see it in watherfall analysis, and if so, what specific components or functions do we need to utilize within the manual instrumentation API to accomplish this? Any insights or guidance would be greatly appreciated.

Thanks

1 REPLY 1

Romanenkov_Al3x
DynaMight Champion
DynaMight Champion

In your case, to solve your problem I would try 

dtrum.setLoadEndManually();

After something loaded  (simple  JS  check)  - you control  when ~20s:

dtrum.signalLoadEnd();

Something  like this. You will get - User Action  with  user  action  duration time ~20s. 

You  would have one action, also you (customers developers) can control  this.

=====

to  second  your  question:  simple  answer -  Depends on the task and goals you want to achieve.

I recommend Instrument a simple page where everything is clear, see what level of nesting can be achieved - using the example "hello world" html page.

---- below example:

for catching loading some block on page we use custom action. For other blocks - We send information as user action property and have App metrics. 

For first block - we measure user action duration - "block load time"

For others - we measure blocks load time and push it as user action property, because this infromation used via  user  session  export to  elastic.

Romanenkov_Al3x_0-1717584467430.png

 

 

The above information may be inaccurate and is subject to certain limitations,  only  as  example,  what  can we  do  with DT_RUM.

For SaaS Dynatrace, maybe there are better solutions available through logs,  maybe Grail.

It's  better to explore other approaches and read information in blogs\docs if you are using Dynatrace SaaS.  

 

Regards,

Alex Romanenkov

 

DT_NGINX_FORCE_UNKNOWN_VERSION_INSTRUMENTATION=1

Featured Posts