The Performance dashboard shows how fast your app feels to real users: how long it takes to start, how smoothly it renders, and how long each screen takes to appear. Vexo captures these signals automatically on your users' devices and trends them over time and by app version.
Note: Available in vexo-analytics 1.10.0 or later.
Performance monitoring is built into the SDK. Once you call vexo(...), three signals are
collected on-device and sent through the same pipeline as your other events — no extra code,
no manual instrumentation:
Vexo reports two kinds of app-start latency:
Both are reported in milliseconds and aggregated into percentiles on the dashboard.
Vexo samples the JavaScript thread frame by frame and classifies each frame by how long it took to render:
Frames are counted per screen and reported as slow, frozen, and total counts. A window is flushed when the user navigates to another screen, on a periodic interval while a screen stays open, and when the app is sent to the background.
The 16 ms / 700 ms thresholds target 60 fps displays. On 90 Hz or 120 Hz screens more frames naturally exceed 16 ms, so treat the slow-frame rate as a relative trend to watch across releases rather than an absolute pass/fail line.
On every navigation, Vexo measures how long the new screen takes to commit its first frame after the route changes — a practical proxy for time-to-interactive. This is broken out per route so you can see which screens are slow to appear.
Performance capture requires no code. It installs when you initialize the SDK and follows the same gating as the rest of Vexo:
disableTracking() stops it and enableTracking() resumes it.Open the Performance page in your mobile app's dashboard. It has three panels:
Like the rest of the dashboard, every panel respects the global date range and app version filters, so you can confirm a new release didn't regress startup or introduce jank.
Performance capture is on by default. To disable it for a build, pass performance: false
when you initialize Vexo:
import { vexo } from 'vexo-analytics';
vexo('YOUR_API_KEY', { performance: false });
All other tracking keeps working; only performance capture is turned off. Re-running vexo()
overwrites the option, and disableTracking() stops performance capture along with everything
else.