Skip to main content
This guide will help you instrument your first AI application with OpenInference and visualize traces in Phoenix.

Prerequisites

Choose your language:
  • Python 3.9 or higher
  • An OpenAI API key (or another LLM provider)

Installation

1

Install OpenInference instrumentation

Install the OpenInference instrumentation library for your framework:
Replace openinference-instrumentation-openai with the instrumentation for your framework:
  • LangChain: openinference-instrumentation-langchain
  • LlamaIndex: openinference-instrumentation-llama-index
  • Anthropic: openinference-instrumentation-anthropic
  • See all Python instrumentations
2

Start Phoenix server

Phoenix is an open-source AI observability platform that runs entirely on your machine. Start the server to collect traces:
Phoenix will start on http://localhost:6006. Open this URL in your browser.
The Phoenix server does not send data over the internet — all traces stay on your machine.
3

Set your API key

Set your OpenAI API key as an environment variable:
4

Instrument your application

Create a file with the following code to instrument your first LLM call:
Create app.py:
app.py
Run the application:
5

View traces in Phoenix

Open Phoenix in your browser at http://localhost:6006. You’ll see:
  • Traces view: All LLM calls with timing, token counts, and costs
  • Span details: Input messages, output messages, model parameters
  • Timeline: Visual representation of the execution flow
Phoenix trace details

What’s captured?

OpenInference automatically captures:

Messages

Full conversation history including system prompts, user messages, and assistant responses

Token counts

Prompt tokens, completion tokens, cached tokens, and reasoning tokens

Model parameters

Temperature, max tokens, top-p, and other invocation parameters

Costs

Estimated costs for prompt and completion tokens in USD

Timing

Start time, end time, and duration with nanosecond precision

Errors

Exception messages and stack traces when calls fail

Advanced example with context

Add session tracking, user IDs, and custom metadata to your traces:

Streaming example

OpenInference supports streaming LLM responses:
Set stream_options={"include_usage": True} to capture token counts when streaming (requires openai>=1.26).

Next steps

Python instrumentations

Explore all 30+ Python instrumentation libraries

JavaScript instrumentations

Explore JavaScript/TypeScript instrumentations

Privacy controls

Configure data masking and PII protection

Concepts

Learn about traces, spans, and attributes