Browser monitoring is a beta AppSignal Labs feature. The
@appsignal/browser package is published under the beta tag on npm, and its
configuration and API may still change between beta releases. Share feedback
in our Discord community.init(). There is nothing to configure.
What each metric measures
LCP, INP, and CLS are the three Core Web Vitals. FCP and TTFB help explain a poor LCP. Slow TTFB points to the server or network. Fast TTFB with slow LCP points you toward resource loading or rendering.
Every value is rated against these thresholds. AppSignal labels each summary value with a rating. The per-route table uses the same ratings.
How values are attributed to routes
LCP, FCP, and TTFB measure the page load. The browser measures each of them once, when the page first loads, and never again. In a single-page application, they belong to the route loaded first. Later client-side routes do not receive new load metrics. Measuring them again per route would need a browser feature that is still experimental. CLS and INP can build up while a page is open. When the browser supports them, AppSignal attributes observed values to the active route. It resets those values on navigation. To keep routes separate and readable, tell AppSignal the route template each time your router navigates:When values are sent
Web vitals are batched and sent at page and route boundaries:- When the page is hidden, which covers switching tabs and backgrounding the app.
- When the page is closed or navigated away from.
- On a client-side route change.
#/orders as a navigation. It does not treat a plain in-page anchor such as #pricing as one.
Browser support
The SDK reports a metric only when the browser provides the performance entries needed to measure it. CLS needslayout-shift; INP needs event-timing. Browsers without those entry types do not contribute those metrics. LCP, FCP, and TTFB are collected through the web-vitals library when available.