---
title: Traces and logs
description: Find traces and logs, read a trace span by span, and move between errors, traces and logs.
---

**Traces** and **Logs** share the filter bar: the project picker, a `key:value` search box and a time range. The range defaults to the last 7 days and spans at most 90. Click a bar in the chart above the list to zoom into that slice. Traces and logs are kept for 180 days.

In the search box, separate values with commas and quote values with spaces: `severity:warn,error message:"payment failed"`. Words without a key are not applied.

## Traces

Each row is one trace, named after its root transaction, with its root operation, span count, duration and start time. A trace counts as **With errors** when any of its spans failed; the chart splits traces into **With errors** and **Without errors**.

| Key           | Matches                                   |
| ------------- | ----------------------------------------- |
| `name`        | Part of a transaction name.               |
| `platform`    | `server`, `browser`, `mobile`, `unknown`. |
| `environment` | Environment names.                        |

### Trace page

- A bar at the top splits the trace's time by service and marks the first error.
- The span waterfall shows every span on a shared timeline. Select a span for its **Duration**, **Start** from the beginning of the trace, **Self time** without its children, **Status**, its error with **Open error**, and its attributes.
- **Errors** lists the errors raised in the trace, each linked to its error group.
- **Logs** lists the logs written during the trace. **Open in Logs** opens them in **Logs**.
- The sidebar shows the root operation, environment, release, project, platform, start, end and duration, and the span, error and log counts.

**More actions** has **Copy link**, **Copy trace ID** and, with a span selected, **Copy span ID**.

| Key       | Action                  |
| --------- | ----------------------- |
| `J` / `K` | Next / previous span    |
| `Escape`  | Clear the selected span |
| `U`       | Back to the list        |
| `Shift+C` | Copy link               |

### Traces across services

A trace spans several services when each passes the trace context on. The browser SDK adds a `traceparent` header to requests to its own origin and to URLs that match `tracePropagationTargets` (see [SDK](/sdk)). Allow that header in the CORS settings of those APIs. Server SDKs pass it on through their HTTP instrumentation.

## Logs

Each row shows the level, message, project and time. Click a row to expand it: its timestamp, service, environment, trace and span IDs, scope and attributes, with **Open trace**, **Logs of this trace** (15 minutes either side) and **Copy JSON**.

| Key           | Matches                                             |
| ------------- | --------------------------------------------------- |
| `message`     | Part of the message, ignoring case.                 |
| `severity`    | `trace`, `debug`, `info`, `warn`, `error`, `fatal`. |
| `traceId`     | One trace ID.                                       |
| `environment` | Environment names.                                  |

The Node.js and Bun SDKs forward pino, winston and bunyan logs unless `captureLogs` is `false`. Any OTLP log works too; see [OpenTelemetry](/opentelemetry). A log record with `exception.type` or `exception.stacktrace` also becomes an [error](/errors).

## Move between signals

| From                      | Link                                        |
| ------------------------- | ------------------------------------------- |
| An error occurrence       | **Open trace**, **Open in Logs**            |
| A span with an error      | **Open error**                              |
| A log row with a trace ID | **Open trace**, **Logs of this trace**      |
| An endpoint or page       | **Open in Traces** under **Slowest traces** |
| A query or domain sample  | The sample's trace                          |
