Supported Technologies

edit

Page load metrics

edit

The RUM agent tries to capture the overall user experience on how the page is loaded/rendered as part of the page load Transaction. It includes all of the dependent resources, like JavaScript, stylesheets, images, etc., which are included as part of the page. In addition to capturing the resource timing information as Spans, the transaction also includes navigation spans that are associated with the rest of the captured information to make the waterfall more appealing.

Domain lookup
Duration of the DNS query for the current page: domainLookupEnd - domainLookupStart.
Making a connection to the server
Duration of the TCP connection to the server, including the TLS negotiation time for HTTPS pages: connectEnd - connectStart.
Requesting and receiving the document
Overall response time of the server including the last byte: responseEnd - requestStart.
Parsing the document, executing sync. scripts
HTML document parsing time, including synchronous Stylesheets and Script: tagsdomInteractive - domLoading.
Fire "DOMContentLoaded" event
Triggered when the browser completes parsing the document. Helpful when there are multiple listeners, or logic is executed: domContentLoadedEventEnd - domContentLoadedEventStart.
Fire "load" event
Trigged when the browser finishes loading its document and dependent resources: loadEventEnd - loadEventStart.

To capture the overall user experience of the page including all of the above information plus additional resource requests that might be triggered during the execution of dependent resources, the page-load transaction duration might not always reflect the Load event of the browser and can extend beyond the event.

If you are interested in accurately measuring the duration of load event, the information can be extracted by using Fire load event Span or from the Transaction marks available as transaction.marks.agent.domComplete in the Elasticsearch document.

User Interactions

edit

The RUM agent automatically instruments click event listeners that are registered by the application. The click events are captured as user-interaction transactions. However, to avoid sending too many user-interaction transactions to the server, the agent discards transactions with no spans (e.g. no network activity). Furthermore, if the click interaction results in route change, then a route-change transaction would be captured instead.

Single Page Applications

edit

All history pushState events will be captured as transactions. Most of these transactions can be enhanced by using framework specific integrations. For all unsupported frameworks/libraries, you can instrument the application by creating custom transactions and custom spans with the span API.

Frameworks

edit

The agent supports integrations with certain frameworks.

To instrument custom metrics, like rendering time or mounting time of components on frameworks like React, Angular, Vue, etc., use the custom transactions API.

Platforms

edit

The following platforms are supported:

Elastic APM RUM Agent compatibility