Supported Technologies
editSupported Technologies
editPage load metrics
editThe 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
editThe 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
editAll 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
editThe 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
editThe following platforms are supported: