> For the complete documentation index, see [llms.txt](https://mercure-technologies.gitbook.io/xprem/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mercure-technologies.gitbook.io/xprem/observe/overview.md).

# Overview

Observe turns your xprem server into the telemetry backend for the apps it serves: the same server that delivers updates also receives the app's performance metrics, log events and crash signals, and ties every one of them to the update, branch and runtime version the device was running. Everything stays on your infrastructure; nothing is sent to a third party.

In the dashboard, the Observe section gives you:

* **Performance metrics**: cold and warm launch times, time to first render and to interactive, JS bundle load time, update download time, and screen navigation timings.
* **A logs explorer**: the custom events your app logs and the JS errors the SDK captures, explorable and filterable by device, update or branch.
* **Update health over time**: app-start and crash events are matched to the update the device was running, so a release that misbehaves in the field is visible per update instead of drowning in global stats.

Observe also feeds the [Identity](/xprem/identity/overview.md) registry: telemetry batches carry the device model, OS and app version, and the log stream transports the [custom attributes](/xprem/observe/custom-attributes.md) you attach to devices.

### How it works

Apps embed `expo-observe`, Expo's open source, MIT-licensed telemetry SDK (Expo SDK 55 and later; log events need SDK 56). The SDK records metrics and events in a local database on the device and ships them in batches when the app goes to the background, as standard OTLP payloads. Each batch names the install through its EAS Client ID and carries the current update id, channel and runtime version, which is how telemetry lands on the right device and the right release.

Server side, batches arrive on the same xprem server that serves updates. Log batches enrich the device registry and update health in PostgreSQL, and the telemetry itself is stored in ClickHouse, which the Observe dashboards query.

### What it needs

A ClickHouse database for telemetry storage, and the SDK installed in the app. Get started with Observe walks through both sides.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://mercure-technologies.gitbook.io/xprem/observe/overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
