RUM missing data

How to troubleshoot missing RUM data

Here are some tips for figuring out why data is missing from your RUM dashboards in SpeedCurve.

The beacon is being sent too early

This is the most common reason for RUM data to be missing from your dashboards in SpeedCurve. Out of the box, SpeedCurve's RUM library lux.js will send the beacon after the onload event. Any metrics that occur after the onload event will not be recorded, and this data will not be available in your dashboards. If your pages continue to load after the onload event, there are two ways you can instruct lux.js to continue measuring data:

  1. Set LUX.minMeasureTime to force lux.js to collect data for a minimum time period before sending the beacon. We recommend starting with 5 seconds and increasing the value if necessary, i.e. LUX.minMeasureTime = 5000;
  2. Set LUX.auto = false to prevent lux.js from automatically sending the beacon at all. This requires you to manually call LUX.send() when the page has finished loading.

Missing or low values for Largest Contenful Paint (LCP) or Cumulative Layout Shift (CLS)

Largest Contentful Paint (LCP) and Cumulative Layout Shift (CLS) are metrics that occur over the full lifetime of the page, and may occur after the beacon has already been sent. To resolve this, you can configure RUM to collect data for longer.

For most RUM integrations, you can achieve this by setting the LUX.minMeasureTime property. We recommend starting out with a smaller value like 5000 (5 seconds), and gradually increasing it if you are still seeing low values for LCP or CLS.

If your RUM integration uses LUX.auto = false, the method above will not have any effect and you will need to call LUX.send() later instead. See our Recommended implementation for a SPA section to read how we recommend collecting data for as long as possible when LUX.auto = false.

Some metrics are not available for Single Page Applications (SPAs)

Some metrics are not available in all SPA page views, because the browser only reports them for the very first page load. These metrics include:

  • Any navigation timing metrics (DOMContentLoaded, TLS time, connection time, etc)
  • Start Render
  • First Contentful Paint (FCP)
  • Largest Contentful Paint (LCP)
  • Page Load (for SPAs this is recorded as the time between LUX.init() and LUX.markLoadTime() or LUX.send())

These metrics will be recorded for a full navigation event, i.e. the browser loading a "normal" page. They will not be recorded for subsequent page transitions within a SPA.