Skip to main content

Real User Monitoring

Real User Monitoring

Plugin: dem.plugin Module: rum

Maintained by Netdata

Overview​

Monitor browser Web Vitals, document and application-view traffic, JavaScript errors and resource timing.

The Faro browser SDK sends measurements to the configured RUM receiver. Netdata aggregates accepted observations over a sliding window, retains sampled investigation history locally, and optionally exports event logs and browser traces through OTLP/gRPC. Native charts, session timelines and errors need no OTLP receiver. Country-only geolocation is the default; approximate city markers require explicit opt-in and remain live-only. Frustration heuristics are disabled by default and do not establish intent or causality. Application-provided user IDs remain original application-controlled identifiers, not anonymous values. URL/path and targeted text normalization are limited transformations, not general anonymization or consent handling. Event logs add searchable custom-event attributes and optional console messages; tracing adds sampled browser request spans. Both are disabled by default and have independent destinations.

This collector is only supported on the following platforms:

  • Linux
  • macOS

This collector supports collecting metrics from multiple instances of this integration.

The Netdata service needs write access to its DEM state directory. Configured TLS and GeoIP files must be readable by the Netdata service account.

Default Behavior​

Auto-Detection​

Sites are explicitly configured; websites are not discovered automatically.

Limits​

Breakdown charts show current-window top groups. Missing browser observations cannot be reconstructed, and capacity loss suppresses affected percentiles and window counts. Duplicate detection is best effort across a bounded 30-minute retention period; capacity pressure or restart can shorten it. Quality alerts require at least 30 observations for that metric and complete local measurement state. Quiet traffic alone does not trigger an alert.

History uses one plugin-wide journal file-age and committed-byte retention target in dem.conf, including disabled sites. Whole archives expire; the active file is protected, so the size target is not a hard disk ceiling. Export/history queues count records dropped under backpressure. Detail sampling applies to native history and enabled event logs and traces. Problem overrides retain available recent native context with its original attribution, then current and future detail while the session remains tracked. Earlier logs and spans are not exported retrospectively; complete sessions or traces are not guaranteed. Export acceptance does not guarantee durable storage.

Performance Impact​

Resource usage depends on accepted browser traffic and the configured measurement window. Optional OTLP export and investigation history add network and local disk work.

Setup​

Prerequisites​

Install the DEM plugin​

DEM is experimental and opt-in. Build Netdata with -DENABLE_PLUGIN_DEM=ON, or use --enable-plugin-dem with the source installer. Install the resulting DEM plugin package.

Configure the receiver and site​

Configure the canonical receiver in dem/receiver.conf, then add one job per website in dem/rum.conf. The native configuration UI exposes the receiver as a single object and sites as independently managed jobs.

Install the browser snippet​

Add <script async src="https://rum.example.org/rum/shop.js"></script> to the website, replacing the configured public receiver URL and site key. The receiver serves the pinned SDK too; allow its script and connection URLs in the website Content Security Policy. Proxy the entire RUM path, including SDK assets and collect requests. A script-only redirect is insufficient.

Optional searchable event logs​

Event logs and tracing are optional and disabled by default. Enable an OTLP/gRPC receiver separately. In the receiving Netdata node's Logs tab, select otel-logs and the netdata-rum service. Filter the time range, resource.attributes.rum.site and attributes.session.id; inspect attributes.event.attr.<key> for custom-event attributes and attributes.console.level with the message body for console messages. Netdata log access requires Cloud sign-in. Console errors are logs; uncaught exceptions and unhandled rejections remain native RUM errors. Event data is sampled and independently retained by the destination.

Optional browser tracing​

To follow a request into backend services, instrument those services, accept browser trace context, allow trace headers in cross-origin CORS, coordinate sampling and send both sides to the same tracing system. Browser spans alone show browser requests, not a complete backend trace. For an external receiver, look up a copied trace ID in that system. Netdata receiver selection and direct UI navigation are part of the later frontend integration.

Customize alerts​

Stock health templates evaluate complete LCP, INP and CLS populations with at least 30 observations. Quiet traffic alone has no stock alert. Customize thresholds or disable alerts through normal Netdata health configuration; use the _collect_plugin=dem and _collect_job chart labels for site-specific policies.

Configuration​

Options​

Options apply independently to each site job. Native job name is the beacon and history identity; display_name is human metadata. Event logs and browser tracing each have a complete destination with no inheritance. Saved inactive settings are retained without endpoint or TLS validation, but all native secret references must resolve for the job to start.

Configuration options
GroupOptionDescriptionDefaultRequired
SitenameStable site identifier used in beacon URLs and history. Renaming creates a new history identity.yes
display_nameHuman-readable site name. Leave empty to use the site key.no
allowed_originsWeb origins allowed to send telemetry, such as https://example.org. A leading *. allows subdomains only.yes
public_urlPublic receiver base URL used for this site's installation snippet. Leave empty to use the receiver public URL.no
Collectionupdate_everyData collection interval, in seconds.10no
windowReceiver-arrival window for recent browser measurements and distinct observed sessions. Accepts durations between 1m and 30m.5mno
page_groupsMaximum individual page groups shown in breakdown charts. Remaining groups are combined as other.20no
countriesMaximum individual countries shown in breakdown charts. Remaining countries are combined as other.20no
botsExclude crawlers and browser automation by default, or include them as bot traffic.excludeno
CapturecaptureChoose optional location and interaction evidence independently of sampling. Defaults retain country comparisons and disable frustration heuristics.no
capture.geolocationIP-derived location detail: off disables lookup, country retains country comparisons, and city adds approximate live map markers. Omitted or null means country; coordinates are never retained in history or exported.countryno
capture.frustration_signalsEnable rage, dead and error click heuristics and their browser instrumentation. Disabled by default; these signals do not establish user intent or causality.nono
Samplingmeasure_sample_rateShare of browser sessions collected, from 0 to 1. Omitted or null means all; zero disables collection. Browser measurement charts are absent while collection is disabled; receiver diagnostics remain available.1no
investigateSelect native investigation history and enabled event-log and trace exports from received sessions. Leave empty to select all received sessions.no
investigate.sample_rateBaseline share of received sessions selected for detail, from 0 to 1. Omitted or null means all; zero selects only the problem overrides below.1no
investigate.always_keepConditions that select detail beyond the baseline sample. Omitted or null keeps errors and poor vitals; an empty list disables overrides.["errors","poor_vitals"]no
Event logsevent_logsExport sampled browser events for search, including custom-event attributes. Native RUM history works independently.no
event_logs.enabledSend event logs to the configured destination. Disabled by default; native charts, sessions and errors remain available.nono
event_logs.include_console_logsCapture console info, warn and error messages for investigated sessions. Effective only when event logs are enabled.nono
event_logs.destinationReceiver for this signal only. Leave unset to use the local OTLP/gRPC receiver.no
event_logs.destination.endpointOTLP/gRPC receiver URL with an explicit port. Use http for plaintext or https for TLS; paths, credentials, query strings and fragments are not allowed.http://127.0.0.1:4317no
event_logs.destination.auth_tokenBearer token accepted by the receiver. Use a native secret reference; leave empty for no authentication.no
event_logs.destination.tls_caCA certificate file for verifying an HTTPS receiver. Leave empty to use system roots.no
event_logs.destination.tls_certClient certificate file for an HTTPS receiver. Set together with TLS key; leave both empty to omit client authentication.no
event_logs.destination.tls_keyClient private key file for an HTTPS receiver. Set together with TLS client certificate.no
Browser tracingtracingCapture browser request spans and propagate trace context. Backend spans require separately instrumented services.no
tracing.enabledCapture and export browser spans independently of event logs. Disabled by default.nono
tracing.propagate_toAdditional literal API origins receiving trace headers. Same-origin requests receive them automatically; cross-origin APIs must allow the trace headers in CORS.no
tracing.destinationReceiver for this signal only. Leave unset to use the local OTLP/gRPC receiver.no
tracing.destination.endpointOTLP/gRPC receiver URL with an explicit port. Use http for plaintext or https for TLS; paths, credentials, query strings and fragments are not allowed.http://127.0.0.1:4317no
tracing.destination.auth_tokenBearer token accepted by the receiver. Use a native secret reference; leave empty for no authentication.no
tracing.destination.tls_caCA certificate file for verifying an HTTPS receiver. Leave empty to use system roots.no
tracing.destination.tls_certClient certificate file for an HTTPS receiver. Set together with TLS key; leave both empty to omit client authentication.no
tracing.destination.tls_keyClient private key file for an HTTPS receiver. Set together with TLS client certificate.no
Normalizationredact_pathsApply site-specific URL-path replacements before built-in normalization. These rules do not anonymize user IDs or provide general data-loss prevention.no
redact_paths[].patternGo regular expression matching private path identifiers. Empty patterns are ignored.no
redact_paths[].replaceReplacement text for matching path segments. Leave empty to remove them.no

via File​

The configuration file name for this integration is dem/rum.conf.

You can edit the configuration file using the edit-config script from the Netdata config directory.

cd /etc/netdata 2>/dev/null || cd /opt/netdata/etc/netdata
sudo ./edit-config dem/rum.conf
Examples​
Website​

Native charts, session timelines and errors, with country-only location and frustration heuristics disabled. No OTLP receiver is required.

Examples
jobs:
- name: shop
allowed_origins: [https://shop.example.org]

Problems-only detail​

Keep measurements and live views for all received traffic, with detail selected only for errors or poor vitals by the default problem overrides.

Examples
jobs:
- name: shop
allowed_origins: [https://shop.example.org]
investigate:
sample_rate: 0

Measurements and live views only​

Keep measurements and live views without retained native detail or event-log and trace exports, even when those exports are enabled.

Examples
jobs:
- name: shop
allowed_origins: [https://shop.example.org]
investigate:
sample_rate: 0
always_keep: []

Searchable event logs​

Search sampled events and optional console messages with a local OTLP/gRPC receiver at http://127.0.0.1:4317. Enable that receiver separately.

Examples
jobs:
- name: shop
allowed_origins: [https://shop.example.org]
event_logs:
enabled: true
include_console_logs: true

Browser tracing​

Send browser spans to your backend tracing receiver without enabling event logs. Provide the secret and configure backend instrumentation, context propagation, CORS and compatible sampling separately.

Examples
jobs:
- name: shop
allowed_origins: [https://shop.example.org]
tracing:
enabled: true
propagate_to: [https://api.example.org]
destination:
endpoint: https://traces.example.org:4317
auth_token: ${env:TRACE_EXPORT_TOKEN}

Alerts​

The following alerts are available:

Alert nameOn metricDescription
rum_lcp_experience_quality rum.lcp_populationLargest Contentful Paint exceeds its good threshold for more than 25% of recent observed document experiences; critical when more than 25% exceed its poor threshold. Requires at least 30 observations and a complete local population.
rum_inp_experience_quality rum.inp_populationInteraction to Next Paint exceeds its good threshold for more than 25% of recent observed document experiences; critical when more than 25% exceed its poor threshold. Requires at least 30 observations and a complete local population.
rum_cls_experience_quality rum.cls_populationCumulative Layout Shift exceeds its good threshold for more than 25% of recent observed document experiences; critical when more than 25% exceed its poor threshold. Requires at least 30 observations and a complete local population.
rum_events_dropped rum.otlpRUM event log delivery failed or records were locally dropped in the last 5 minutes
rum_spans_dropped rum.spansRUM browser span delivery failed or spans were locally dropped in the last 5 minutes

Metrics​

Metrics grouped by scope.

The scope defines the instance that the metric belongs to. An instance is uniquely identified by a set of labels.

All charts remain on this Agent. Native job identity scopes site charts; display_name is optional metadata. The window uses receiver arrival time. Each Web Vital contributes its latest report per document experience; percentiles cannot be averaged across times or groups. Population charts show retained observations and ratings. No observations means no percentile. Capacity loss makes affected percentiles and counts unavailable; lost_reports is retained loss evidence, not a denominator or an exact count of missing observations in the window.

Document views count initial activations and back-forward cache restores. Application views count explicit route occurrences separately. Observed sessions are distinct browser session identities seen in the window, not concurrent users. JavaScript errors are events; errors divided by document views is not a failure percentage. Breakdowns use current-window top groups plus a pooled other bucket; page Functions expose all retained document-entry groups.

The event-log (rum.otlp) and browser-span (rum.spans) charts and their loss alerts exist only while their respective feature is enabled. sent counts records accepted by the receiver; errors counts records whose attempted delivery failed or was rejected; dropped counts local queue or shutdown loss. Acceptance does not guarantee queryability or durable storage. A timeout can have an unknown delivery outcome. Disablement and sampling do not count as loss.

Per site​

One configured site.

Labels:

LabelDescription
display_nameOptional human-readable site name, present when display_name differs from the native site job name.

Metrics:

MetricDescriptionDimensionsUnit
rum.lcpLargest Contentful Paint among recent observed document experiencesp50, p75, p95milliseconds
rum.lcp_populationLargest Contentful Paint observed populationobserved, good, needs_improvement, poor, lost_reportsobservations
rum.fcpFirst Contentful Paint among recent observed document experiencesp50, p75, p95milliseconds
rum.fcp_populationFirst Contentful Paint observed populationobserved, good, needs_improvement, poor, lost_reportsobservations
rum.ttfbTime to First Byte among recent observed document experiencesp50, p75, p95milliseconds
rum.ttfb_populationTime to First Byte observed populationobserved, good, needs_improvement, poor, lost_reportsobservations
rum.inpInteraction to Next Paint among recent observed document experiencesp50, p75, p95milliseconds
rum.inp_populationInteraction to Next Paint observed populationobserved, good, needs_improvement, poor, lost_reportsobservations
rum.clsCumulative Layout Shift among recent observed document experiencesp50, p75, p95score
rum.cls_populationCumulative Layout Shift observed populationobserved, good, needs_improvement, poor, lost_reportsobservations
rum.loadDocument load timep50, p75, p95milliseconds
rum.dom_content_loaded_handlerDOMContentLoaded handler durationp50, p75, p95milliseconds
rum.same_site_fetchSame-site fetch and XHR durationp50, p75, p95milliseconds
rum.load_populationDocument load time observation populationobserved, lost_reportsobservations
rum.dom_content_loaded_handler_populationDOMContentLoaded handler duration observation populationobserved, lost_reportsobservations
rum.same_site_fetch_populationSame-site fetch and XHR duration observation populationobserved, lost_reportsobservations
rum.document_viewsDocument viewsviewsviews/s
rum.js_errorsJavaScript errorserrorserrors/s
rum.observed_sessionsSessions observed in the windowobservedsessions
rum.window_totalsDocument views, application views and JavaScript errors in the windowdocument_views, application_views, js_errorsevents
rum.frustrationFrustration heuristicsrage_clicks, dead_clicks, error_clickssignals/s
rum.application_viewsExplicit application viewsviewsviews/s
rum.measurement_lossRetained capacity-loss evidence for window summariesactivity, sessionsreports
rum.resourcesReported application resource entriessame_site, cross_site, unknownentries/s
rum.beaconsRUM beaconsaccepted, rejected_origin, rejected_rate, rejected_size, invalid, botsbeacons/s
rum.otlpEvent log export outcomessent, dropped, errorsrecords/s
rum.historyRUM history writeswritten, droppedrecords/s
rum.spansBrowser span export outcomessent, dropped, errorsspans/s
rum.samples_droppedReports lost from bounded measurement statedroppedreports/s
rum.ingress_stateRUM ingress availabilityavailable, unavailablestate
rum.invalid_measurementsMeasurements without valid identity or revisioninvalidreports/s

Per site host​

One configured site grouped by host.

Labels:

LabelDescription
display_nameOptional human-readable site name, present when display_name differs from the native site job name.
hostResource host.
bucketvalue for a reported label; other for the pooled complement; unknown for unavailable resource hosts.

Metrics:

MetricDescriptionDimensionsUnit
rum.resource_host_p75Resource duration by host in the windowp75milliseconds
rum.resource_host_countReported resource entries by host in the windowcountentries
rum.resource_host_populationResource duration population by hostobserved, lost_reportsobservations
rum.resource_host_lossRetained capacity-loss evidence for resource counts by hostlost_reportsreports

Per site fingerprint​

One configured site grouped by fingerprint.

Labels:

LabelDescription
display_nameOptional human-readable site name, present when display_name differs from the native site job name.
fingerprintError fingerprint.
bucketvalue for a reported label; other for the pooled complement; unknown for unavailable resource hosts.

Metrics:

MetricDescriptionDimensionsUnit
rum.error_groupsJavaScript error reports by fingerprint in the windowerrorsreports
rum.error_group_lossRetained capacity-loss evidence for error fingerprintslost_reportsreports

Per site browser​

One configured site grouped by browser.

Labels:

LabelDescription
display_nameOptional human-readable site name, present when display_name differs from the native site job name.
browserBrowser name.
bucketvalue for a reported label; other for the pooled complement; unknown for unavailable resource hosts.

Metrics:

MetricDescriptionDimensionsUnit
rum.browser_lcpLCP by browser among recent observed document experiencesp75milliseconds
rum.browser_fcpFCP by browser among recent observed document experiencesp75milliseconds
rum.browser_ttfbTTFB by browser among recent observed document experiencesp75milliseconds
rum.browser_inpINP by browser among recent observed document experiencesp75milliseconds
rum.browser_clsCLS by browser among recent observed document experiencesp75score
rum.browser_document_viewsDocument views by browser in the windowviewsviews
rum.browser_js_errorsJavaScript error reports by browser in the windowerrorsreports
rum.browser_vital_populationWeb Vital observation populations by browserlcp, fcp, ttfb, inp, clsobservations
rum.browser_lossRetained capacity-loss evidence by browseractivity, lcp, fcp, ttfb, inp, clsreports

Per site device​

One configured site grouped by device.

Labels:

LabelDescription
display_nameOptional human-readable site name, present when display_name differs from the native site job name.
deviceDevice class.
bucketvalue for a reported label; other for the pooled complement; unknown for unavailable resource hosts.

Metrics:

MetricDescriptionDimensionsUnit
rum.device_lcpLCP by device among recent observed document experiencesp75milliseconds
rum.device_fcpFCP by device among recent observed document experiencesp75milliseconds
rum.device_ttfbTTFB by device among recent observed document experiencesp75milliseconds
rum.device_inpINP by device among recent observed document experiencesp75milliseconds
rum.device_clsCLS by device among recent observed document experiencesp75score
rum.device_document_viewsDocument views by device in the windowviewsviews
rum.device_js_errorsJavaScript error reports by device in the windowerrorsreports
rum.device_vital_populationWeb Vital observation populations by devicelcp, fcp, ttfb, inp, clsobservations
rum.device_lossRetained capacity-loss evidence by deviceactivity, lcp, fcp, ttfb, inp, clsreports

Per site country​

One configured site grouped by country.

Labels:

LabelDescription
display_nameOptional human-readable site name, present when display_name differs from the native site job name.
countryCountry code.
bucketvalue for a reported label; other for the pooled complement; unknown for unavailable resource hosts.

Metrics:

MetricDescriptionDimensionsUnit
rum.country_lcpLCP by country among recent observed document experiencesp75milliseconds
rum.country_fcpFCP by country among recent observed document experiencesp75milliseconds
rum.country_ttfbTTFB by country among recent observed document experiencesp75milliseconds
rum.country_inpINP by country among recent observed document experiencesp75milliseconds
rum.country_clsCLS by country among recent observed document experiencesp75score
rum.country_document_viewsDocument views by country in the windowviewsviews
rum.country_js_errorsJavaScript error reports by country in the windowerrorsreports
rum.country_vital_populationWeb Vital observation populations by countrylcp, fcp, ttfb, inp, clsobservations
rum.country_lossRetained capacity-loss evidence by countryactivity, lcp, fcp, ttfb, inp, clsreports

Per site page​

One configured site grouped by page.

Labels:

LabelDescription
display_nameOptional human-readable site name, present when display_name differs from the native site job name.
pageNormalized document-entry path.
bucketvalue for a reported label; other for the pooled complement; unknown for unavailable resource hosts.

Metrics:

MetricDescriptionDimensionsUnit
rum.page_lcpLCP by page among recent observed document experiencesp75milliseconds
rum.page_fcpFCP by page among recent observed document experiencesp75milliseconds
rum.page_ttfbTTFB by page among recent observed document experiencesp75milliseconds
rum.page_inpINP by page among recent observed document experiencesp75milliseconds
rum.page_clsCLS by page among recent observed document experiencesp75score
rum.page_document_viewsDocument views by page in the windowviewsviews
rum.page_js_errorsJavaScript error reports by page in the windowerrorsreports
rum.page_vital_populationWeb Vital observation populations by pagelcp, fcp, ttfb, inp, clsobservations
rum.page_lossRetained capacity-loss evidence by pageactivity, lcp, fcp, ttfb, inp, clsreports

Per site version​

One configured site grouped by version.

Labels:

LabelDescription
display_nameOptional human-readable site name, present when display_name differs from the native site job name.
versionApplication version.
bucketvalue for a reported label; other for the pooled complement; unknown for unavailable resource hosts.

Metrics:

MetricDescriptionDimensionsUnit
rum.version_lcpLCP by version among recent observed document experiencesp75milliseconds
rum.version_fcpFCP by version among recent observed document experiencesp75milliseconds
rum.version_ttfbTTFB by version among recent observed document experiencesp75milliseconds
rum.version_inpINP by version among recent observed document experiencesp75milliseconds
rum.version_clsCLS by version among recent observed document experiencesp75score
rum.version_document_viewsDocument views by version in the windowviewsviews
rum.version_js_errorsJavaScript error reports by version in the windowerrorsreports
rum.version_vital_populationWeb Vital observation populations by versionlcp, fcp, ttfb, inp, clsobservations
rum.version_lossRetained capacity-loss evidence by versionactivity, lcp, fcp, ttfb, inp, clsreports

Per site view​

One configured site grouped by view.

Labels:

LabelDescription
display_nameOptional human-readable site name, present when display_name differs from the native site job name.
viewNormalized application-view label.
bucketvalue for a reported label; other for the pooled complement; unknown for unavailable resource hosts.

Metrics:

MetricDescriptionDimensionsUnit
rum.view_activityExplicit application views and error reports in the windowviews, errorsevents
rum.view_lossRetained capacity-loss evidence by application viewlost_reportsreports

Live Data​

Use these process-wide Functions through the Netdata Agent or Cloud to inspect RUM setup, live activity and retained investigation history. Invoke their public rum-* names; filter by site where supported.

RUM Sites​

Inspect site setup, sampling, receiver availability and recent activity to diagnose missing browser data.

AspectDescription
NameRum-sites
Require Cloudno
PerformanceReads bounded local activity snapshots without contacting the monitored website.
SecurityResults can include page paths, browser metadata, user identifiers, error messages and stack traces. Restrict access to authorized operators.
AvailabilityAvailable while dem.plugin is running; activity comes from admitted site jobs.

Prerequisites​

No additional configuration is required.

Parameters​

This function has no parameters.

Returns​

One admitted site job. The response also includes collector public URL and ingress availability.

ColumnTypeUnitVisibilityDescription
sitestringSite.
namestringName.
generationstringReceiving runtime identity; does not identify the browser policy revision.
collection_enabledbooleanWhether current site policy permits measurement collection.
script_urlstringExternal script URL from explicit configuration; null when no public URL is configured.
snippetstringCopyable external script tag; null when no public URL is configured.
allowed_originsstringAllowed Origins.
beacons_per_minintegerAccepted payloads in the last minute; not visitors or durable history records.
last_beacon_attimestampLast accepted payload time in Unix microseconds; null when none has been accepted by this runtime.
last_beacon_age_sintegerSeconds since the last accepted payload; null when none has been accepted by this runtime.
observed_sessionsintegerDistinct browser session identities observed within the measurement window; not concurrent users.
pageviews_windowintegerExplicit document activations in the window.
js_errors_windowintegerJS Errors (window).
rejected_per_minintegerOrigin, rate and size rejections in the last minute; excludes invalid payloads and bot exclusions.
measuredstringMeasured.
investigatedstringInvestigated.
investigated_sessionsintegerSessions currently tracked for investigation; separate from observed measurement-window sessions.
bots_per_minintegerBots Filtered / min.
last_rejected_originstringLast observed rejected origin, including preflight requests; not a recommendation to allow it.
last_rejected_attimestampLast rejected-origin observation time in Unix microseconds; null when none was observed.
last_rejected_age_sintegerSeconds since the last rejected-origin observation; null when none was observed.
capture_geolocationstringCurrent Geolocation Capture.
capture_frustration_signalsbooleanCurrent Frustration Capture.
application_views_windowintegerExplicit application-view occurrences in the window.
window_lostintegerRetained capacity-loss evidence; affected measurements are unavailable.
sessions_lostintegerRetained capacity-loss evidence; affected measurements are unavailable.

RUM Pages​

Compare document-entry pages using recent observed traffic, Web Vital populations and attributed elements.

AspectDescription
NameRum-pages
Require Cloudno
PerformanceReads bounded local activity snapshots without contacting the monitored website.
SecurityResults can include page paths, browser metadata, user identifiers, error messages and stack traces. Restrict access to authorized operators.
AvailabilityAvailable while dem.plugin is running; activity comes from admitted site jobs.

Prerequisites​

No additional configuration is required.

Parameters​

ParameterTypeDescriptionRequiredDefaultOptions
sitestringFilter by native site job name. Leave empty to include all sites.no

Returns​

All retained document-entry groups, independent of chart top groups. Null values indicate absent or incomplete measurements; loss fields identify retained capacity-loss evidence.

ColumnTypeUnitVisibilityDescription
sitestringSite.
pagestringPage.
pageviews_windowintegerExplicit document activations in the window.
sessionsintegerDistinct browser session identities observed within the window.
lcp_p75_msintegerLCP p75 (ms).
inp_p75_msintegerINP p75 (ms).
cls_p75floatCLS p75.
errors_windowintegerJS Errors (window).
lcp_elementstringLCP Element.
inp_elementstringINP Element.
cls_elementstringCLS Element.
frustration_windowintegerFrustration Signals (window).
row_idstringhiddenStable row identity scoped to the site; the visible values remain available for filtering.
lcp_samplesintegerRetained observations for LCP.
inp_samplesintegerRetained observations for INP.
cls_samplesintegerRetained observations for CLS.
lcp_lostintegerRetained capacity-loss evidence; affected measurements are unavailable.
inp_lostintegerRetained capacity-loss evidence; affected measurements are unavailable.
cls_lostintegerRetained capacity-loss evidence; affected measurements are unavailable.
window_lostintegerRetained capacity-loss evidence; affected measurements are unavailable.
sessions_lostintegerRetained capacity-loss evidence; affected measurements are unavailable.

RUM Live​

Read recent browser events for live activity views, optionally continuing from a previous response.

AspectDescription
NameRum-live
Require Cloudno
PerformanceReads bounded local activity snapshots without contacting the monitored website.
SecurityResults can include page paths, browser metadata, user identifiers, error messages and stack traces. Restrict access to authorized operators.
AvailabilityAvailable while dem.plugin is running; activity comes from admitted site jobs.

Prerequisites​

No additional configuration is required.

Parameters​

ParameterTypeDescriptionRequiredDefaultOptions
sitestringFilter by native site job name. Leave empty to include all sites.no
afterstringOpaque next cursor from the previous rum-live response. Pass it unchanged; leave empty for recent events.no

Returns​

Recent observation rows. Vital revisions update the same document metric; rows are not independent document views.

ColumnTypeUnitVisibilityDescription
seqstringEvent.
tstimestampTime.
sitestringSite.
countrystringCountry.
citystringCity.
latfloatLatitude.
lonfloatLongitude.
pagestringPage.
browserstringBrowser.
devicestringDevice.
pageviewintegerExplicit document activation.
lcp_msfloatLCP (ms).
inp_msfloatINP (ms).
fcp_msfloatFCP (ms).
ttfb_msfloatTTFB (ms).
clsfloatCLS.
errorsintegerJS Errors.
kindstringObservation kind; one vital row represents one metric report.
experience_idstringDocument activation identity, independent of session and application view.
viewstringApplication view when this report was created.
view_idstringApplication-view occurrence identity.
vitalstringWeb Vital reported by this row.
metric_idstringBrowser SDK metric identity.
revisionintegerIncreasing report revision within this metric or event identity.

RUM Sessions​

Investigate sampled sessions with retained observations received within a time range, including pages, errors and optional interaction heuristics.

AspectDescription
NameRum-sessions
Require Cloudno
PerformanceReads local retained history; work grows with the selected range and retained records.
SecurityResults can include page paths, browser metadata, user identifiers, error messages and stack traces. Restrict access to authorized operators.
AvailabilityAvailable while dem.plugin is running. History results require retained investigation data.

Prerequisites​

No additional configuration is required.

Parameters​

ParameterTypeDescriptionRequiredDefaultOptions
sitestringFilter by native site job name. Leave empty to include all sites.no
user_idstringExact application user ID observed in retained events in the selected range. Leave empty to include all sessions.no
afterintegerInclusive Agent receipt-time lower bound in Unix seconds; zero is epoch and negative values are offsets from now.no15 minutes before before, clamped to epoch
beforeintegerInclusive Agent receipt-time upper bound in Unix seconds; zero is epoch and negative values are offsets from now.nonow

Returns​

One session with retained observations originally received by the Agent in the selected range. Counts and activity span cover selected observations, not lifetime totals. Sessions are ordered by last selected observation at microsecond precision. Late-saved context can change an earlier range. Results can include disabled sites until their history expires.

ColumnTypeUnitVisibilityDescription
sitestringSite.
session_idstringSession.
started_age_sintegerFirst Selected Observation (s ago).
duration_sintegerSelected Observation Span (s).
pageviewsintegerRetained document activations.
errorsintegerJS Errors.
browserstringBrowser.
devicestringDevice.
countrystringCountry.
versionstringVersion.
entry_pagestringEntry Page.
last_pagestringLast Page.
user_idsarrayObserved User IDs.
frustrationsintegerRetained Frustration Signals.
row_idstringhiddenStable row identity scoped to the site; the visible values remain available for filtering.
application_viewsintegerRetained application-view occurrences.
last_observed_ustimestampLast Selected Observation in Unix microseconds; default descending sort.

RUM Errors​

Group errors originally received by the Agent in the selected range by fingerprint; select a fingerprint to investigate affected sessions, pages and browsers.

AspectDescription
NameRum-errors
Require Cloudno
PerformanceReads local retained history; work grows with the selected range and retained records.
SecurityResults can include page paths, browser metadata, user identifiers, error messages and stack traces. Restrict access to authorized operators.
AvailabilityAvailable while dem.plugin is running. History results require retained investigation data.

Prerequisites​

No additional configuration is required.

Parameters​

ParameterTypeDescriptionRequiredDefaultOptions
sitestringFilter by native site job name. Leave empty to include all sites.no
fingerprintstringSelect an error fingerprint to compute affected-session, top-page and browser statistics. Leave empty for the count overview.no
afterintegerInclusive Agent receipt-time lower bound in Unix seconds; zero is epoch and negative values are offsets from now.no15 minutes before before, clamped to epoch
beforeintegerInclusive Agent receipt-time upper bound in Unix seconds; zero is epoch and negative values are offsets from now.nonow

Returns​

One error fingerprint per site with observations originally received by the Agent in the selected range. Affected-session, page and browser statistics are null until a fingerprint is selected; first and last observations use Agent receipt time. Results can include disabled sites until their history expires.

ColumnTypeUnitVisibilityDescription
sitestringSite.
fingerprintstringFingerprint.
typestringType.
messagestringMessage.
count_windowintegerCount (window).
sessions_affectedintegerSessions Affected (selected fingerprint).
first_seen_age_sintegerFirst Selected Observation (s ago).
last_seen_age_sintegerLast Selected Observation (s ago).
top_pagestringTop Page (selected fingerprint).
browsersstringBrowsers (selected fingerprint).
sample_stackstringSample Stack.
row_idstringhiddenStable row identity scoped to the site; the visible values remain available for filtering.

RUM Session Events​

Read the retained event timeline for a session to follow navigation, errors and traced requests.

AspectDescription
NameRum-session-events
Require Cloudno
PerformanceReads local retained history; work grows with the selected range and retained records.
SecurityResults can include page paths, browser metadata, user identifiers, error messages and stack traces. Restrict access to authorized operators.
AvailabilityAvailable while dem.plugin is running. History results require retained investigation data.

Prerequisites​

No additional configuration is required.

Parameters​

ParameterTypeDescriptionRequiredDefaultOptions
sitestringFilter by native site job name. Leave empty to include all sites.no
session_idstringSession identifier returned by rum-sessions. Specify site when the same session identifier exists on multiple sites.yes

Returns​

One retained or pending session event, with Agent receipt time in Unix microseconds and an optional trace identifier. The available session timeline is returned without range filtering. Activity-only observations contribute to summaries, not this timeline. Unknown sessions return an error.

ColumnTypeUnitVisibilityDescription
tstimestampTime.
typestringEvent.
pagestringPage.
textstringDetails.
trace_idstringTrace.
user_idstringUser ID at Event.
experience_idstringDocument activation identity, independent of session and application view.
viewstringApplication view when this report was created.
view_idstringApplication-view occurrence identity.
metric_idstringBrowser SDK metric identity.
revisionintegerIncreasing report revision within this metric or event identity.

Troubleshooting​

Other Problems​

No browser measurements​

Open rum-sites for receiver availability, collection policy and last accepted payload or rejected-origin observations. Missing traffic alone is not failure. In the website browser Network panel, follow the script request, SDK request and collect POST; check console CSP and Netdata RUM errors. POST 202 means accepted, 204 means intentional bot or disabled-collection exclusion, 400 invalid payload, 403 origin rejection, 404 missing site runtime or incorrect proxy path, 413 size rejection and 429 rate limiting. For 404, check native job state and the request path. A fresh session can still be sampled out; explicitly select 100% collection for a deterministic eligible-session check. Receipt does not prove human traffic, retained history or export delivery.

Missing exported events or spans​

Check that the required signal is enabled and its receiver accepts OTLP/gRPC at the configured explicit http or https URL and port. Verify Bearer authentication, TLS trust and paired client certificate/key files. The event and span charts distinguish receiver-accepted records, failed or rejected delivery, and local queue/shutdown loss. A timeout may have an unknown delivery outcome; zero traffic proves neither failure nor success. Receiver failures do not stop native history.


Do you have any feedback for this page? If so, you can open a new issue on our netdata/learn repository.