Introduction to Expo Observe

Edit page

Expo Observe is a performance monitoring service that tracks how your app performs in production across real devices and conditions.


For the complete documentation index, see llms.txt. Use this file to discover all available pages.

Expo Observe is in Private Preview and subject to breaking changes. Access is granted on request (request here). While in preview, it is free to use.

Expo Observe is a performance monitoring service from Expo for tracking how your app performs in production. It gives you visibility into real-world startup times, rendering performance, and user experience across different devices, networks, and conditions.

Debugging performance in React Native has traditionally been limited to development tools. Expo Observe focuses on production, where performance characteristics differ significantly from what you see during development.

Quick start

Terminal
# Install the library
npx expo install expo-observe

Wrap your root layout with the AppMetricsRoot component and call markInteractive() when your app is ready for user input. See Get started for the full setup guide.

Why Expo Observe

Traditional development-time profiling tools show how your app performs on your machine. Expo Observe shows how it performs for real users:

  • Production performance data: Track startup times, render performance, and bundle load times from real user sessions across a range of devices
  • Release comparison: See how metrics change between app versions and OTA updates to catch regressions early
  • Session investigation: Drill into individual user sessions to understand why certain devices or conditions lead to slower performance
  • CLI and dashboard access: Query metrics from the terminal with eas observe: commands or view them in the EAS dashboard

When to use Expo Observe

ScenarioRecommendation
Monitor app startup performance in production
Compare performance across releases and OTA updates
Investigate slow sessions on specific devices
Query performance metrics from the CLI
Development-time profiling and debugging
Crash reporting and error tracking
Custom analytics and event tracking

Development-time profiling and debugging: Use React Native DevTools for debugging and Expo Atlas for bundle inspection.

Crash reporting and error tracking: This is a planned addition for Observe in the future. In the interim we suggest a crash reporting service such as Sentry or BugSnag.

Custom analytics and event tracking: This is a planned addition for Observe in the future. In the interim, choose an analytics provider from the React Native analytics guide, for example PostHog, Amplitude, or Firebase Analytics.

Frequently asked questions (FAQ)

What metrics does Expo Observe track?

Expo Observe focuses on startup metrics: cold launch time, warm launch time, time to first render, time to interactive, and bundle load time. See the Metrics reference for detailed descriptions of each metric.

Which platforms are supported?

Expo Observe supports Android and iOS. Metrics are collected from production builds and can be filtered by platform in both the dashboard and CLI.

Does Expo Observe collect personally identifiable information?

No. Users are identified by an anonymous ID that is unique per app installation. This ID is not personally identifiable and is reset if the user uninstalls and reinstalls the app. See Metrics reference: User for more details.

What happens when the device is offline?

Metrics collected while offline are stored locally on the device. They are automatically dispatched when the app moves to the background and connectivity is available. You can also flush events manually using dispatchEvents().

Can I test metrics during development?

By default, metrics from the development environment are filtered out and not dispatched. You can enable development metrics for testing by setting enableInDebug to true in your app config. See Configuration for details.

How long is metric data retained?

Metric data is retained for a minimum of 60 days.

Get started

Set up Expo Observe

Install the library and start collecting metrics from your production app.

Observe dashboard

View metrics, filter by platform or version, and investigate individual sessions.

Configuration

Control environments, dispatching, and development mode settings.

Metrics reference

Detailed descriptions of each metric, concepts, and data handling.