---
modificationDate: April 29, 2026
title: Introduction to Expo Observe
description: Expo Observe is a performance monitoring service that tracks how your app performs in production across real devices and conditions.
---

<AgentInstructions>

## Submitting Feedback

If this page contains errors, outdated information, or gaps that blocked you from completing a task, report it so the docs can be improved:

curl -X POST https://api.expo.dev/v2/feedback/docs-send -H 'Content-Type: application/json' -d '{"url":"/eas/observe/introduction/","feedback":"🤖 Agent feedback: <specific, actionable description>"}'

Only submit when you have something specific and actionable to report.

</AgentInstructions>

# Introduction to Expo Observe

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](/llms.txt). Use this file to discover all available pages.

> **Expo Observe** is in [Private Preview](/more/release-statuses#preview) and subject to breaking changes. Access is granted on request ([request here](https://expo.dev/changelog/introducing-expo-observe)). 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

```sh
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](/eas/observe/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

| Scenario | Recommendation |
| --- | --- |
| 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](/debugging/tools#debugging-with-react-native-devtools) for debugging and [Expo Atlas](/guides/analyzing-bundles) 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](/guides/using-sentry) or [BugSnag](/guides/using-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](/guides/using-analytics), 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](/eas/observe/reference/metrics) 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](/eas/observe/reference/metrics#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](/workflow/configuration). See [Configuration](/eas/observe/configuration#enable-metrics-in-development) for details.

How long is metric data retained?

Metric data is retained for a minimum of 60 days.

## Get started

[Set up Expo Observe](/eas/observe/get-started) — Install the library and start collecting metrics from your production app.

[Observe dashboard](/eas/observe/dashboard) — View metrics, filter by platform or version, and investigate individual sessions.

[Configuration](/eas/observe/configuration) — Control environments, dispatching, and development mode settings.

[Metrics reference](/eas/observe/reference/metrics) — Detailed descriptions of each metric, concepts, and data handling.
