APM Agent language and version: Elastic APM RUM JavaScript agent, 5.12.0
Browser version: Chrome 114
In our project, we use custom transactions since the website is old and uses a lot of iframes, but the spans that 'fills' a custom transaction are just copied from what the agent records. I have noticed that the span.duration I can see in Kibana only includes the network transfer time from the Chrome devtools and not the resource loading time. I have included images below to better describe the issue.
Is this the standard behavior? I would like that the span matched the duration (in this case 89ms) so it also included the resource loading time. Maybe somewhere along the way, my options are wrong but I cannot find any resources that explains what that might be.
Please let me know if any information is missing - I am far from an expert. Thanks in advance.
The RUM agent duration is actually producing the correct Duration time which only includes the time spent on downloading the resource time from the network.
Being the JS library running the browser, the Agent has access only to the API's browser provides and does not have access to all the Network level profiling data that Chrome devtools has access to. This includes profiling data from the Blink(layout engine) and V8(JavaScript Engine), hence the devtools is able to give more information when you profile a web page.
Network Transfer time - Includes the time spent on the network downloading the resource (RUM agent gets it from browser API).
Resource Loading Time - Time spent by the browser to process the downloaded resource. (Only available in Devtools or any Synthetic monitoring tools which runs profiler under the hood).
Hope this helps, Please let us know if you have any other questions.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.