page.load transaction plus the four core web vitals, and the dashboard aggregates them into percentiles so you can spot regressions before your users complain.
Requires
@argusdev/sdk-browser (or @argusdev/sdk-react) v0.2.0 or later. Vitals capture is on by default — no extra configuration.How capture works
The SDK uses bufferedPerformanceObservers so metrics are captured even if init() runs after the page started loading:
| Vital | Full name | How it’s measured |
|---|---|---|
| LCP | Largest Contentful Paint | Last largest-contentful-paint entry — perceived load speed |
| CLS | Cumulative Layout Shift | Sum of layout-shift entries, ignoring shifts right after user input — visual stability |
| FCP | First Contentful Paint | The first-contentful-paint paint entry — initial render speed |
| TTFB | Time to First Byte | responseStart from navigation timing — server responsiveness |
pagehide / visibilitychange), the SDK sends a single transaction envelope with keepalive, so it survives navigation. Nothing is sent for background tabs that never rendered.
Opt out per app:
Performance events go through the same ingest pipeline as errors — DSN-authenticated, rate-limited, and counted against your monthly event quota.
Transactions
A transaction is one unit of work — today, a page load (page.load /dashboard). Each carries name, duration (ms), status, traceId, an optional vitals object, and a timestamp. The dashboard and API aggregate them by name into count, p50, p75, p95, and lastSeen.
Spans planned
Spans (sub-operations inside a transaction — a DB query, an outbound HTTP call) are part of the data model but not yet produced by any SDK. They arrive with the Node.js timing integration in a future release.Ratings
Vitals are reported at p75 (the web-vitals standard) and rated against web.dev thresholds:| Vital | Good | Needs improvement | Poor |
|---|---|---|---|
| LCP | ≤ 2.5s | ≤ 4s | > 4s |
| CLS | ≤ 0.1 | ≤ 0.25 | > 0.25 |
| FCP | ≤ 1.8s | ≤ 3s | > 3s |
| TTFB | ≤ 0.8s | ≤ 1.8s | > 1.8s |
Viewing performance data
- Open your project and click Performance in the sidebar.
- The four vitals cards show the p75 for each metric, color-coded by rating, with sample counts.
- The transactions table lists each operation with count, p50/p75/p95 durations, and when it was last seen.
- Switch the window with the 24h / 7d / 30d selector.
API access
See the Performance API reference for theGET .../performance/transactions and GET .../performance/vitals endpoints and their response shapes.