Skip to content

Send your first trace

Go from install to your first trace in about 5 minutes. A trace is the full record of one request, job, task, or agent run from start to finish, made of nested spans; a span is one operation within it, with a name, a start, and a duration. Logfire has native SDKs for Python, JavaScript/TypeScript, and Rust, plus any language through OpenTelemetry (OTel), the open industry standard it is built on.

Before you start

You need a Logfire account and a project to send your data to:

  1. Create a free account and follow the prompts. Your data region (where your data is stored) is shown at the foot of the sign-up card, with a link to switch to the other one.
  2. Create your first project when asked. A project is a namespace that holds your data; everything you send to Logfire belongs to one.

Let an AI agent set it up

To have an AI coding agent wire this up for you, copy this prompt into Claude Code, Cursor, or a similar tool:

Prompt for your coding agent
This prompt was copied from the Pydantic Logfire website. Follow https://pydantic.dev/.well-known/agent-skills/logfire-setup/SKILL.md end to end to connect this repository to Logfire. Authenticate first, confirmed via `whoami`, before opening or running any application file -- then get real telemetry flowing.

Or do it by hand

Pick your language below; the Python, JavaScript/TypeScript, and Rust tabs are complete, runnable examples.

1. Install and sign in

Run this in your project’s terminal to install the SDK and sign in (logfire auth opens your browser to log in, no API key needed):

Terminal
uv add logfire
uv run logfire auth

Prefer pip? Use pip install logfire, then run logfire auth directly (without the uv run prefix). Prefer conda? Use conda install -c conda-forge logfire.

2. Add Logfire to your app

hello.py
import logfire

logfire.configure()

with logfire.span('greeting'):
    logfire.info('Hello, {name}!', name='world')

configure() connects your app to Logfire. span() records one operation, and info() writes a log (a timestamped record of a single event) inside it, so together they make your first trace.

3. Run it

Terminal
uv run hello.py

The first run asks you to pick or create a Logfire project, then sends your trace.

See it in the Live view

Open the Live view in Logfire. Your greeting trace appears as it arrives:

Traces arriving in the Logfire Live view

Each row is one span, with its service, name, and duration. Click a span to open its full trace and read its details. The example above shows a busier app: a checkout request with a nested validation error. Your greeting span shows up as a row, with the Hello world! log nested inside it.

Get automatic traces

The greeting span is a manual example. Most of your traces should come automatically: add one line to instrument a framework or library you already use, and Logfire records every request, query, and outgoing call as a trace, without writing spans by hand.

logfire.instrument_httpx()  # trace every outgoing HTTP request

Each integration ships as an extra, so install the matching one first: pip install 'logfire[httpx]' for the example above. See Integrations for FastAPI, Django, SQLAlchemy, HTTPX, and many more.

Troubleshooting

SymptomLikely causeFix
Nothing appears in the Live viewNot signed in, or no project or write token setRun logfire auth, then run your app and pick a project when prompted; or set LOGFIRE_TOKEN from Project → Settings → Write tokens
The view looks emptyThe time range does not include nowWiden the time range in the top right
A short script sends nothingThe program exited before its data was sentLogfire sends data as your program runs and on exit; in JavaScript, call await logfire.shutdown() before exiting

Next steps

  • New to tracing? Core concepts explains spans and traces and how to read them.
  • Want the full Python walkthrough? The Python onboarding guide adds manual tracing, auto-tracing, and metrics, step by step.
  • Already using a framework? Integrations add rich tracing to FastAPI, Django, SQLAlchemy, HTTPX, and many more with one line.
  • Building with AI? AI & LLM Observability shows the requests, tool calls, tokens, and cost behind your model-powered features.
  • Not sure where to focus? Choose your path gives a short, ordered route for your role.
  • Ready to deploy? Use a write token in an environment variable instead of the CLI.