Real User Monitoring
Real User Monitoring
Plugin: dem.plugin Module: rum
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, including remote instances.
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 public receiver URL and site key. Allow this collector and the pinned Faro SDK CDN in the website Content Security Policy.
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.
| Group | Option | Description | Default | Required |
|---|---|---|---|---|
| Site | name | Stable site identifier used in beacon URLs and history. Renaming creates a new history identity. | yes | |
| display_name | Human-readable site name. Leave empty to use the site key. | no | ||
| allowed_origins | Web origins allowed to send telemetry, such as https://example.org. A leading *. allows subdomains only. | yes | ||
| public_url | Externally reachable collector base URL for this site. Leave empty to use the receiver public URL. | no | ||
| Collection | update_every | Data collection interval, in seconds. | 10 | no |
| window | Receiver-arrival window for recent browser measurements and distinct observed sessions. Accepts durations between 1m and 30m. | 5m | no | |
| page_groups | Maximum individual page groups shown in breakdown charts. Remaining groups are combined as other. | 20 | no | |
| countries | Maximum individual countries shown in breakdown charts. Remaining countries are combined as other. | 20 | no | |
| bots | Exclude crawlers and browser automation by default, or include them as bot traffic. | exclude | no | |
| Capture | capture | Choose optional location and interaction evidence independently of sampling. Defaults retain country comparisons and disable frustration heuristics. | no | |
| capture.geolocation | IP-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. | country | no | |
| capture.frustration_signals | Enable rage, dead and error click heuristics and their browser instrumentation. Disabled by default; these signals do not establish user intent or causality. | no | no | |
| Sampling | measure_sample_rate | Share 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. | 1 | no |
| investigate | Select native investigation history and enabled event-log and trace exports from received sessions. Leave empty to select all received sessions. | no | ||
| investigate.sample_rate | Baseline share of received sessions selected for detail, from 0 to 1. Omitted or null means all; zero selects only the problem overrides below. | 1 | no | |
| investigate.always_keep | Conditions 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 logs | event_logs | Export sampled browser events for search, including custom-event attributes. Native RUM history works independently. | no | |
| event_logs.enabled | Send event logs to the configured destination. Disabled by default; native charts, sessions and errors remain available. | no | no | |
| event_logs.include_console_logs | Capture console info, warn and error messages for investigated sessions. Effective only when event logs are enabled. | no | no | |
| event_logs.destination | Receiver for this signal only. Leave unset to use the local OTLP/gRPC receiver. | no | ||
| event_logs.destination.endpoint | OTLP/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:4317 | no | |
| event_logs.destination.auth_token | Bearer token accepted by the receiver. Use a native secret reference; leave empty for no authentication. | no | ||
| event_logs.destination.tls_ca | CA certificate file for verifying an HTTPS receiver. Leave empty to use system roots. | no | ||
| event_logs.destination.tls_cert | Client certificate file for an HTTPS receiver. Set together with TLS key; leave both empty to omit client authentication. | no | ||
| event_logs.destination.tls_key | Client private key file for an HTTPS receiver. Set together with TLS client certificate. | no | ||
| Browser tracing | tracing | Capture browser request spans and propagate trace context. Backend spans require separately instrumented services. | no | |
| tracing.enabled | Capture and export browser spans independently of event logs. Disabled by default. | no | no | |
| tracing.propagate_to | Additional literal API origins receiving trace headers. Same-origin requests receive them automatically; cross-origin APIs must allow the trace headers in CORS. | no | ||
| tracing.destination | Receiver for this signal only. Leave unset to use the local OTLP/gRPC receiver. | no | ||
| tracing.destination.endpoint | OTLP/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:4317 | no | |
| tracing.destination.auth_token | Bearer token accepted by the receiver. Use a native secret reference; leave empty for no authentication. | no | ||
| tracing.destination.tls_ca | CA certificate file for verifying an HTTPS receiver. Leave empty to use system roots. | no | ||
| tracing.destination.tls_cert | Client certificate file for an HTTPS receiver. Set together with TLS key; leave both empty to omit client authentication. | no | ||
| tracing.destination.tls_key | Client private key file for an HTTPS receiver. Set together with TLS client certificate. | no | ||
| Normalization | redact_paths | Apply 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[].pattern | Go regular expression matching private path identifiers. Empty patterns are ignored. | no | ||
| redact_paths[].replace | Replacement 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.
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.
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.
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.
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.
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}
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:
| Label | Description |
|---|---|
| display_name | Optional human-readable site name, present when display_name differs from the native site job name. |
Metrics:
| Metric | Description | Dimensions | Unit |
|---|---|---|---|
| rum.lcp | Largest Contentful Paint among recent observed document experiences | p50, p75, p95 | milliseconds |
| rum.lcp_population | Largest Contentful Paint observed population | observed, good, needs_improvement, poor, lost_reports | observations |
| rum.fcp | First Contentful Paint among recent observed document experiences | p50, p75, p95 | milliseconds |
| rum.fcp_population | First Contentful Paint observed population | observed, good, needs_improvement, poor, lost_reports | observations |
| rum.ttfb | Time to First Byte among recent observed document experiences | p50, p75, p95 | milliseconds |
| rum.ttfb_population | Time to First Byte observed population | observed, good, needs_improvement, poor, lost_reports | observations |
| rum.inp | Interaction to Next Paint among recent observed document experiences | p50, p75, p95 | milliseconds |
| rum.inp_population | Interaction to Next Paint observed population | observed, good, needs_improvement, poor, lost_reports | observations |
| rum.cls | Cumulative Layout Shift among recent observed document experiences | p50, p75, p95 | score |
| rum.cls_population | Cumulative Layout Shift observed population | observed, good, needs_improvement, poor, lost_reports | observations |
| rum.load | Document load time | p50, p75, p95 | milliseconds |
| rum.dom_content_loaded_handler | DOMContentLoaded handler duration | p50, p75, p95 | milliseconds |
| rum.same_site_fetch | Same-site fetch and XHR duration | p50, p75, p95 | milliseconds |
| rum.load_population | Document load time observation population | observed, lost_reports | observations |
| rum.dom_content_loaded_handler_population | DOMContentLoaded handler duration observation population | observed, lost_reports | observations |
| rum.same_site_fetch_population | Same-site fetch and XHR duration observation population | observed, lost_reports | observations |
| rum.document_views | Document views | views | views/s |
| rum.js_errors | JavaScript errors | errors | errors/s |
| rum.observed_sessions | Sessions observed in the window | observed | sessions |
| rum.window_totals | Document views, application views and JavaScript errors in the window | document_views, application_views, js_errors | events |
| rum.frustration | Frustration heuristics | rage_clicks, dead_clicks, error_clicks | signals/s |
| rum.application_views | Explicit application views | views | views/s |
| rum.measurement_loss | Retained capacity-loss evidence for window summaries | activity, sessions | reports |
| rum.resources | Reported application resource entries | same_site, cross_site, unknown | entries/s |
| rum.beacons | RUM beacons | accepted, rejected_origin, rejected_rate, rejected_size, invalid, bots | beacons/s |
| rum.otlp | Event log export outcomes | sent, dropped, errors | records/s |
| rum.history | RUM history writes | written, dropped | records/s |
| rum.spans | Browser span export outcomes | sent, dropped, errors | spans/s |
| rum.samples_dropped | Reports lost from bounded measurement state | dropped | reports/s |
| rum.ingress_state | RUM ingress availability | available, unavailable | state |
| rum.invalid_measurements | Measurements without valid identity or revision | invalid | reports/s |
Per site host
One configured site grouped by host.
Labels:
| Label | Description |
|---|---|
| display_name | Optional human-readable site name, present when display_name differs from the native site job name. |
| host | Resource host. |
| bucket | value for a reported label; other for the pooled complement; unknown for unavailable resource hosts. |
Metrics:
| Metric | Description | Dimensions | Unit |
|---|---|---|---|
| rum.resource_host_p75 | Resource duration by host in the window | p75 | milliseconds |
| rum.resource_host_count | Reported resource entries by host in the window | count | entries |
| rum.resource_host_population | Resource duration population by host | observed, lost_reports | observations |
| rum.resource_host_loss | Retained capacity-loss evidence for resource counts by host | lost_reports | reports |
Per site fingerprint
One configured site grouped by fingerprint.
Labels:
| Label | Description |
|---|---|
| display_name | Optional human-readable site name, present when display_name differs from the native site job name. |
| fingerprint | Error fingerprint. |
| bucket | value for a reported label; other for the pooled complement; unknown for unavailable resource hosts. |
Metrics:
| Metric | Description | Dimensions | Unit |
|---|---|---|---|
| rum.error_groups | JavaScript error reports by fingerprint in the window | errors | reports |
| rum.error_group_loss | Retained capacity-loss evidence for error fingerprints | lost_reports | reports |
Per site browser
One configured site grouped by browser.
Labels:
| Label | Description |
|---|---|
| display_name | Optional human-readable site name, present when display_name differs from the native site job name. |
| browser | Browser name. |
| bucket | value for a reported label; other for the pooled complement; unknown for unavailable resource hosts. |
Metrics:
| Metric | Description | Dimensions | Unit |
|---|---|---|---|
| rum.browser_lcp | LCP by browser among recent observed document experiences | p75 | milliseconds |
| rum.browser_fcp | FCP by browser among recent observed document experiences | p75 | milliseconds |
| rum.browser_ttfb | TTFB by browser among recent observed document experiences | p75 | milliseconds |
| rum.browser_inp | INP by browser among recent observed document experiences | p75 | milliseconds |
| rum.browser_cls | CLS by browser among recent observed document experiences | p75 | score |
| rum.browser_document_views | Document views by browser in the window | views | views |
| rum.browser_js_errors | JavaScript error reports by browser in the window | errors | reports |
| rum.browser_vital_population | Web Vital observation populations by browser | lcp, fcp, ttfb, inp, cls | observations |
| rum.browser_loss | Retained capacity-loss evidence by browser | activity, lcp, fcp, ttfb, inp, cls | reports |
Per site device
One configured site grouped by device.
Labels:
| Label | Description |
|---|---|
| display_name | Optional human-readable site name, present when display_name differs from the native site job name. |
| device | Device class. |
| bucket | value for a reported label; other for the pooled complement; unknown for unavailable resource hosts. |
Metrics:
| Metric | Description | Dimensions | Unit |
|---|---|---|---|
| rum.device_lcp | LCP by device among recent observed document experiences | p75 | milliseconds |
| rum.device_fcp | FCP by device among recent observed document experiences | p75 | milliseconds |
| rum.device_ttfb | TTFB by device among recent observed document experiences | p75 | milliseconds |
| rum.device_inp | INP by device among recent observed document experiences | p75 | milliseconds |
| rum.device_cls | CLS by device among recent observed document experiences | p75 | score |
| rum.device_document_views | Document views by device in the window | views | views |
| rum.device_js_errors | JavaScript error reports by device in the window | errors | reports |
| rum.device_vital_population | Web Vital observation populations by device | lcp, fcp, ttfb, inp, cls | observations |
| rum.device_loss | Retained capacity-loss evidence by device | activity, lcp, fcp, ttfb, inp, cls | reports |
Per site country
One configured site grouped by country.
Labels:
| Label | Description |
|---|---|
| display_name | Optional human-readable site name, present when display_name differs from the native site job name. |
| country | Country code. |
| bucket | value for a reported label; other for the pooled complement; unknown for unavailable resource hosts. |
Metrics:
| Metric | Description | Dimensions | Unit |
|---|---|---|---|
| rum.country_lcp | LCP by country among recent observed document experiences | p75 | milliseconds |
| rum.country_fcp | FCP by country among recent observed document experiences | p75 | milliseconds |
| rum.country_ttfb | TTFB by country among recent observed document experiences | p75 | milliseconds |
| rum.country_inp | INP by country among recent observed document experiences | p75 | milliseconds |
| rum.country_cls | CLS by country among recent observed document experiences | p75 | score |
| rum.country_document_views | Document views by country in the window | views | views |
| rum.country_js_errors | JavaScript error reports by country in the window | errors | reports |
| rum.country_vital_population | Web Vital observation populations by country | lcp, fcp, ttfb, inp, cls | observations |
| rum.country_loss | Retained capacity-loss evidence by country | activity, lcp, fcp, ttfb, inp, cls | reports |
Per site page
One configured site grouped by page.
Labels:
| Label | Description |
|---|---|
| display_name | Optional human-readable site name, present when display_name differs from the native site job name. |
| page | Normalized document-entry path. |
| bucket | value for a reported label; other for the pooled complement; unknown for unavailable resource hosts. |
Metrics:
| Metric | Description | Dimensions | Unit |
|---|---|---|---|
| rum.page_lcp | LCP by page among recent observed document experiences | p75 | milliseconds |
| rum.page_fcp | FCP by page among recent observed document experiences | p75 | milliseconds |
| rum.page_ttfb | TTFB by page among recent observed document experiences | p75 | milliseconds |
| rum.page_inp | INP by page among recent observed document experiences | p75 | milliseconds |
| rum.page_cls | CLS by page among recent observed document experiences | p75 | score |
| rum.page_document_views | Document views by page in the window | views | views |
| rum.page_js_errors | JavaScript error reports by page in the window | errors | reports |
| rum.page_vital_population | Web Vital observation populations by page | lcp, fcp, ttfb, inp, cls | observations |
| rum.page_loss | Retained capacity-loss evidence by page | activity, lcp, fcp, ttfb, inp, cls | reports |
Per site version
One configured site grouped by version.
Labels:
| Label | Description |
|---|---|
| display_name | Optional human-readable site name, present when display_name differs from the native site job name. |
| version | Application version. |
| bucket | value for a reported label; other for the pooled complement; unknown for unavailable resource hosts. |
Metrics:
| Metric | Description | Dimensions | Unit |
|---|---|---|---|
| rum.version_lcp | LCP by version among recent observed document experiences | p75 | milliseconds |
| rum.version_fcp | FCP by version among recent observed document experiences | p75 | milliseconds |
| rum.version_ttfb | TTFB by version among recent observed document experiences | p75 | milliseconds |
| rum.version_inp | INP by version among recent observed document experiences | p75 | milliseconds |
| rum.version_cls | CLS by version among recent observed document experiences | p75 | score |
| rum.version_document_views | Document views by version in the window | views | views |
| rum.version_js_errors | JavaScript error reports by version in the window | errors | reports |
| rum.version_vital_population | Web Vital observation populations by version | lcp, fcp, ttfb, inp, cls | observations |
| rum.version_loss | Retained capacity-loss evidence by version | activity, lcp, fcp, ttfb, inp, cls | reports |
Per site view
One configured site grouped by view.
Labels:
| Label | Description |
|---|---|
| display_name | Optional human-readable site name, present when display_name differs from the native site job name. |
| view | Normalized application-view label. |
| bucket | value for a reported label; other for the pooled complement; unknown for unavailable resource hosts. |
Metrics:
| Metric | Description | Dimensions | Unit |
|---|---|---|---|
| rum.view_activity | Explicit application views and error reports in the window | views, errors | events |
| rum.view_loss | Retained capacity-loss evidence by application view | lost_reports | reports |
Alerts
The following alerts are available:
| Alert name | On metric | Description |
|---|---|---|
| rum_lcp_experience_quality | rum.lcp_population | Largest 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_population | Interaction 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_population | Cumulative 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.otlp | RUM event log delivery failed or records were locally dropped in the last 5 minutes |
| rum_spans_dropped | rum.spans | RUM browser span delivery failed or spans were locally dropped in the last 5 minutes |
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.
| Aspect | Description |
|---|---|
| Name | Rum-sites |
| Require Cloud | no |
| Performance | Reads bounded local activity snapshots without contacting the monitored website. |
| Security | Results can include page paths, browser metadata, user identifiers, error messages and stack traces. Restrict access to authorized operators. |
| Availability | Available 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.
| Column | Type | Unit | Visibility | Description |
|---|---|---|---|---|
| site | string | Site. | ||
| name | string | Name. | ||
| status | string | Status. | ||
| beacon_url | string | Beacon URL. | ||
| snippet | string | Snippet. | ||
| allowed_origins | string | Allowed Origins. | ||
| beacons_per_min | integer | Beacons / min. | ||
| last_beacon_age_s | integer | Last Beacon (s ago). | ||
| observed_sessions | integer | Distinct browser session identities observed within the measurement window; not concurrent users. | ||
| pageviews_window | integer | Explicit document activations in the window. | ||
| js_errors_window | integer | JS Errors (window). | ||
| rejected_per_min | integer | Rejected / min. | ||
| reachable | string | Reachable. | ||
| reach_detail | string | Reachability Detail. | ||
| measured | string | Measured. | ||
| investigated | string | Investigated. | ||
| investigated_sessions | integer | Sessions currently tracked for investigation; separate from observed measurement-window sessions. | ||
| bots_per_min | integer | Bots Filtered / min. | ||
| snippet_check | string | Snippet On Site. | ||
| snippet_detail | string | Snippet Detail. | ||
| last_rejected_origin | string | Last Rejected Origin. | ||
| last_rejected_age_s | integer | Last Rejection (s ago). | ||
| capture_geolocation | string | Current Geolocation Capture. | ||
| capture_frustration_signals | boolean | Current Frustration Capture. | ||
| application_views_window | integer | Explicit application-view occurrences in the window. | ||
| window_lost | integer | Retained capacity-loss evidence; affected measurements are unavailable. | ||
| sessions_lost | integer | Retained capacity-loss evidence; affected measurements are unavailable. |
RUM Pages
Compare document-entry pages using recent observed traffic, Web Vital populations and attributed elements.
| Aspect | Description |
|---|---|
| Name | Rum-pages |
| Require Cloud | no |
| Performance | Reads bounded local activity snapshots without contacting the monitored website. |
| Security | Results can include page paths, browser metadata, user identifiers, error messages and stack traces. Restrict access to authorized operators. |
| Availability | Available while dem.plugin is running; activity comes from admitted site jobs. |
Prerequisites
No additional configuration is required.
Parameters
| Parameter | Type | Description | Required | Default | Options |
|---|---|---|---|---|---|
| site | string | Filter 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.
| Column | Type | Unit | Visibility | Description |
|---|---|---|---|---|
| site | string | Site. | ||
| page | string | Page. | ||
| pageviews_window | integer | Explicit document activations in the window. | ||
| sessions | integer | Distinct browser session identities observed within the window. | ||
| lcp_p75_ms | integer | LCP p75 (ms). | ||
| inp_p75_ms | integer | INP p75 (ms). | ||
| cls_p75 | float | CLS p75. | ||
| errors_window | integer | JS Errors (window). | ||
| lcp_element | string | LCP Element. | ||
| inp_element | string | INP Element. | ||
| cls_element | string | CLS Element. | ||
| frustration_window | integer | Frustration Signals (window). | ||
| row_id | string | hidden | Stable row identity scoped to the site; the visible values remain available for filtering. | |
| lcp_samples | integer | Retained observations for LCP. | ||
| inp_samples | integer | Retained observations for INP. | ||
| cls_samples | integer | Retained observations for CLS. | ||
| lcp_lost | integer | Retained capacity-loss evidence; affected measurements are unavailable. | ||
| inp_lost | integer | Retained capacity-loss evidence; affected measurements are unavailable. | ||
| cls_lost | integer | Retained capacity-loss evidence; affected measurements are unavailable. | ||
| window_lost | integer | Retained capacity-loss evidence; affected measurements are unavailable. | ||
| sessions_lost | integer | Retained capacity-loss evidence; affected measurements are unavailable. |
RUM Live
Read recent browser events for live activity views, optionally continuing from a previous response.
| Aspect | Description |
|---|---|
| Name | Rum-live |
| Require Cloud | no |
| Performance | Reads bounded local activity snapshots without contacting the monitored website. |
| Security | Results can include page paths, browser metadata, user identifiers, error messages and stack traces. Restrict access to authorized operators. |
| Availability | Available while dem.plugin is running; activity comes from admitted site jobs. |
Prerequisites
No additional configuration is required.
Parameters
| Parameter | Type | Description | Required | Default | Options |
|---|---|---|---|---|---|
| site | string | Filter by native site job name. Leave empty to include all sites. | no | ||
| after | string | Opaque 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.
| Column | Type | Unit | Visibility | Description |
|---|---|---|---|---|
| seq | string | Event. | ||
| ts | timestamp | Time. | ||
| site | string | Site. | ||
| country | string | Country. | ||
| city | string | City. | ||
| lat | float | Latitude. | ||
| lon | float | Longitude. | ||
| page | string | Page. | ||
| browser | string | Browser. | ||
| device | string | Device. | ||
| pageview | integer | Explicit document activation. | ||
| lcp_ms | float | LCP (ms). | ||
| inp_ms | float | INP (ms). | ||
| fcp_ms | float | FCP (ms). | ||
| ttfb_ms | float | TTFB (ms). | ||
| cls | float | CLS. | ||
| errors | integer | JS Errors. | ||
| kind | string | Observation kind; one vital row represents one metric report. | ||
| experience_id | string | Document activation identity, independent of session and application view. | ||
| view | string | Application view when this report was created. | ||
| view_id | string | Application-view occurrence identity. | ||
| vital | string | Web Vital reported by this row. | ||
| metric_id | string | Browser SDK metric identity. | ||
| revision | integer | Increasing report revision within this metric or event identity. |
RUM Sessions
Investigate retained sampled sessions that overlap a time range, including pages, errors and optional interaction heuristics.
| Aspect | Description |
|---|---|
| Name | Rum-sessions |
| Require Cloud | no |
| Performance | Reads local retained history; work grows with the selected range and retained records. |
| Security | Results can include page paths, browser metadata, user identifiers, error messages and stack traces. Restrict access to authorized operators. |
| Availability | Available while dem.plugin is running. History results require retained investigation data. |
Prerequisites
No additional configuration is required.
Parameters
| Parameter | Type | Description | Required | Default | Options |
|---|---|---|---|---|---|
| site | string | Filter by native site job name. Leave empty to include all sites. | no | ||
| user_id | string | Exact application user ID observed in retained events in the selected range. Leave empty to include all sessions. | no | ||
| after | integer | Start of the saved-time range as Unix seconds or a negative offset from now. | no | 15 minutes before before | |
| before | integer | End of the saved-time range as Unix seconds or a negative offset from now. | no | now |
Returns
One session with retained activity saved in the selected range. Counts and activity span cover retained events, not lifetime totals. Results can include disabled sites until their history expires.
| Column | Type | Unit | Visibility | Description |
|---|---|---|---|---|
| site | string | Site. | ||
| session_id | string | Session. | ||
| started_age_s | integer | First Retained Event (s ago). | ||
| duration_s | integer | Retained Activity Span (s). | ||
| pageviews | integer | Retained document activations. | ||
| errors | integer | JS Errors. | ||
| browser | string | Browser. | ||
| device | string | Device. | ||
| country | string | Country. | ||
| version | string | Version. | ||
| entry_page | string | Entry Page. | ||
| last_page | string | Last Page. | ||
| user_ids | array | Observed User IDs. | ||
| frustrations | integer | Retained Frustration Signals. | ||
| row_id | string | hidden | Stable row identity scoped to the site; the visible values remain available for filtering. | |
| application_views | integer | Retained application-view occurrences. |
RUM Errors
Group errors saved in the selected range by fingerprint; select a fingerprint to investigate affected sessions, pages and browsers.
| Aspect | Description |
|---|---|
| Name | Rum-errors |
| Require Cloud | no |
| Performance | Reads local retained history; work grows with the selected range and retained records. |
| Security | Results can include page paths, browser metadata, user identifiers, error messages and stack traces. Restrict access to authorized operators. |
| Availability | Available while dem.plugin is running. History results require retained investigation data. |
Prerequisites
No additional configuration is required.
Parameters
| Parameter | Type | Description | Required | Default | Options |
|---|---|---|---|---|---|
| site | string | Filter by native site job name. Leave empty to include all sites. | no | ||
| fingerprint | string | Select an error fingerprint to compute affected-session, top-page and browser statistics. Leave empty for the count overview. | no | ||
| after | integer | Start of the saved-time range as Unix seconds or a negative offset from now. | no | 15 minutes before before | |
| before | integer | End of the saved-time range as Unix seconds or a negative offset from now. | no | now |
Returns
One error fingerprint per site with events saved in the selected range. Affected-session, page and browser statistics are null until a fingerprint is selected; first and last seen use original event time. Results can include disabled sites until their history expires.
| Column | Type | Unit | Visibility | Description |
|---|---|---|---|---|
| site | string | Site. | ||
| fingerprint | string | Fingerprint. | ||
| type | string | Type. | ||
| message | string | Message. | ||
| count_window | integer | Count (window). | ||
| sessions_affected | integer | Sessions Affected (selected fingerprint). | ||
| first_seen_age_s | integer | First Seen (s ago). | ||
| last_seen_age_s | integer | Last Seen (s ago). | ||
| top_page | string | Top Page (selected fingerprint). | ||
| browsers | string | Browsers (selected fingerprint). | ||
| sample_stack | string | Sample Stack. | ||
| row_id | string | hidden | Stable 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.
| Aspect | Description |
|---|---|
| Name | Rum-session-events |
| Require Cloud | no |
| Performance | Reads local retained history; work grows with the selected range and retained records. |
| Security | Results can include page paths, browser metadata, user identifiers, error messages and stack traces. Restrict access to authorized operators. |
| Availability | Available while dem.plugin is running. History results require retained investigation data. |
Prerequisites
No additional configuration is required.
Parameters
| Parameter | Type | Description | Required | Default | Options |
|---|---|---|---|---|---|
| site | string | Filter by native site job name. Leave empty to include all sites. | no | ||
| session_id | string | Session 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 original observation time in Unix microseconds and an optional trace identifier. The available session timeline is returned without range filtering. Unknown sessions return an error.
| Column | Type | Unit | Visibility | Description |
|---|---|---|---|---|
| ts | timestamp | Time. | ||
| type | string | Event. | ||
| page | string | Page. | ||
| text | string | Details. | ||
| trace_id | string | Trace. | ||
| user_id | string | User ID at Event. | ||
| experience_id | string | Document activation identity, independent of session and application view. | ||
| view | string | Application view when this report was created. | ||
| view_id | string | Application-view occurrence identity. | ||
| metric_id | string | Browser SDK metric identity. | ||
| revision | integer | Increasing report revision within this metric or event identity. |
Troubleshooting
Other Problems
No browser measurements
Check receiver availability, the installed snippet URL and the site allowed origins. Open the rum-sites Function for reachability and rejected-origin diagnostics. Missing vital samples produce gaps, including when the receiver is unavailable.
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.
The observability platform companies need to succeed
Sign up for freeWant a personalised demo of Netdata for your use case?






