Real user monitoring (RUM) measures Core Web Vitals in the visitors' browsers. It is off by default; enable it in the zone's edge settings (rum). All endpoints share the same filters and use the 75th percentile (p75).
Returns the p75 of LCP, INP, CLS, FCP and TTFB with their rating, against the previous period of the same length, and what the edge did with the measurement script (injection). Percentiles are per page view; visits are estimated from the sample rate.
import { OpenWAF } from"./openwaf";
const owf = new OpenWAF({ baseUrl: "https://dash.openwaf.dev" }); // token from OPENWAF_TOKENconst result = await owf.getRumSummary({
zone: "6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d"
});
from openwaf import OpenWAF
owf = OpenWAF(base_url="https://dash.openwaf.dev") # token from OPENWAF_TOKEN
result = owf.get_rum_summary(zone="6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d")
RFC 3339, exclusive; now by default. At most 31 days of range.
host
query
string
No
Only that name. At most 253 characters.
path
query
string
No
Only that exact path. At most 512 characters. Pattern ^/.
country
query
string
No
ISO 3166-1 alpha-2 (lowercase accepted). Pattern ^[A-Za-z]{2}$.
node
query
string
No
Only the views measured through that edge node. At most 128 characters.
device
query
string
No
Only that device type. One of mobile, tablet, desktop.
connection
query
string
No
Only that effective connection type. One of 4g, 3g, 2g, slow-2g.
nav_type
query
string
No
Only that navigation type. One of navigate, reload, back-forward, back-forward-cache, prerender, restore.
step
query
integer
No
Seconds per point, a multiple of 60, at most 1000 points. By default the smallest of 300, 900, 1800, 3600, 10800, 21600, 43200 and 86400 that gives at most 60 points. Buckets aligned to the Unix epoch (UTC). Minimum 60.
import { OpenWAF } from"./openwaf";
const owf = new OpenWAF({ baseUrl: "https://dash.openwaf.dev" }); // token from OPENWAF_TOKENconst result = await owf.getRumTimeseries({
zone: "6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d"
});
from openwaf import OpenWAF
owf = OpenWAF(base_url="https://dash.openwaf.dev") # token from OPENWAF_TOKEN
result = owf.get_rum_timeseries(zone="6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d")
import { OpenWAF } from"./openwaf";
const owf = new OpenWAF({ baseUrl: "https://dash.openwaf.dev" }); // token from OPENWAF_TOKENconst result = await owf.getRumBreakdown({
zone: "6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d",
by: "country"
});
from openwaf import OpenWAF
owf = OpenWAF(base_url="https://dash.openwaf.dev") # token from OPENWAF_TOKEN
result = owf.get_rum_breakdown(zone="6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d", by="country")
Splits LCP into its parts (TTFB, resource load delay, resource load time and render delay) for the slow views (LCP at or above p75) and for all views. by adds rows for the 10 devices or paths with most views.
import { OpenWAF } from"./openwaf";
const owf = new OpenWAF({ baseUrl: "https://dash.openwaf.dev" }); // token from OPENWAF_TOKENconst result = await owf.getRumLcpParts({
zone: "6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d"
});
from openwaf import OpenWAF
owf = OpenWAF(base_url="https://dash.openwaf.dev") # token from OPENWAF_TOKEN
result = owf.get_rum_lcp_parts(zone="6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d")
Ranks the elements, resources and scripts with most poor views of their metric (then most views), without the empty key. The keys (selectors, URLs) come from the visitors' pages.
import { OpenWAF } from"./openwaf";
const owf = new OpenWAF({ baseUrl: "https://dash.openwaf.dev" }); // token from OPENWAF_TOKENconst result = await owf.getRumOffenders({
zone: "6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d",
kind: "lcp_element"
});
from openwaf import OpenWAF
owf = OpenWAF(base_url="https://dash.openwaf.dev") # token from OPENWAF_TOKEN
result = owf.get_rum_offenders(zone="6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d", kind="lcp_element")
Returns in one call everything the dashboard's real user monitoring page shows, with the zone's RUM settings, the summary, a time series with automatic step, breakdowns by path (25 rows), country, node, device and connection (10 rows), LCP parts by device and the top offenders. breakdowns.device ignores the device filter.
import { OpenWAF } from"./openwaf";
const owf = new OpenWAF({ baseUrl: "https://dash.openwaf.dev" }); // token from OPENWAF_TOKENconst result = await owf.getRumReport({
zone: "6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d"
});
from openwaf import OpenWAF
owf = OpenWAF(base_url="https://dash.openwaf.dev") # token from OPENWAF_TOKEN
result = owf.get_rum_report(zone="6f1d2c3b-8a4e-4b7d-9c21-5e3f7a8b9c0d")