---
name: phoenix-tracing
description: OpenInference semantic conventions and instrumentation for Phoenix AI observability. Use when implementing LLM tracing, creating custom spans, or deploying to production.
license: Apache-2.0
metadata:
author: oss@arize.com
version: "1.0.0"
languages: Python, TypeScript
---
# Phoenix Tracing
Comprehensive guide for instrumenting LLM applications with OpenInference tracing in Phoenix. Contains rule files covering setup, instrumentation, span types, and production deployment.
## When to Apply
Reference these guidelines when:
- Setting up Phoenix tracing (Python or TypeScript)
- Creating custom spans for LLM operations
- Adding attributes following OpenInference conventions
- Deploying tracing to production
- Querying and analyzing trace data
## Rule Categories
| Priority | Category | Description | Prefix |
| -------- | --------------- | ------------------------------ | -------------------------- |
| 1 | Setup | Installation and configuration | `setup-*` |
| 2 | Instrumentation | Auto and manual tracing | `instrumentation-*` |
| 3 | Span Types | 9 span kinds with attributes | `span-*` |
| 4 | Organization | Projects and sessions | `projects-*`, `sessions-*` |
| 5 | Enrichment | Custom metadata | `metadata-*` |
| 6 | Production | Batch processing, masking | `production-*` |
| 7 | Feedback | Annotations and evaluation | `annotations-*` |
## Quick Reference
### 1. Setup (START HERE)
- `setup-python` - Install arize-phoenix-otel, configure endpoint
- `setup-typescript` - Install @arizeai/phoenix-otel, configure endpoint
### 2. Instrumentation
- `instrumentation-auto-python` - Auto-instrument OpenAI, LangChain, etc.
- `instrumentation-auto-typescript` - Auto-instrument supported frameworks
- `instrumentation-manual-python` - Custom spans with decorators
- `instrumentation-manual-typescript` - Custom spans with wrappers
### 3. Span Types (with full attribute schemas)
- `span-llm` - LLM API calls (model, tokens, messages, cost)
- `span-chain` - Multi-step workflows and pipelines
- `span-retriever` - Document retrieval (documents, scores)
- `span-tool` - Function/API calls (name, parameters)
- `span-agent` - Multi-step reasoning agents
- `span-embedding` - Vector generation
- `span-reranker` - Document re-ranking
- `span-guardrail` - Safety checks
- `span-evaluator` - LLM evaluation
### 4. Organization
- `projects-python` / `projects-typescript` - Group traces by application
- `sessions-python` / `sessions-typescript` - Track conversations
### 5. Enrichment
- `metadata-python` / `metadata-typescript` - Custom attributes
### 6. Production (CRITICAL)
- `production-python` / `production-typescript` - Batch processing, PII masking
### 7. Feedback
- `annotations-overview` - Feedback concepts
- `annotations-python` / `annotations-typescript` - Add feedback to spans
### Reference Files
- `fundamentals-overview` - Traces, spans, attributes basics
- `fundamentals-required-attributes` - Required fields per span type
- `fundamentals-universal-attributes` - Common attributes (user.id, session.id)
- `fundamentals-flattening` - JSON flattening rules
- `attributes-messages` - Chat message format
- `attributes-metadata` - Custom metadata schema
- `attributes-graph` - Agent workflow attributes
- `attributes-exceptions` - Error tracking
## Common Attributes
| Attribute | Purpose | Example |
| ------------------------- | -------------------- | ---------------------- |
| `openinference.span.kind` | Span type (required) | `"LLM"`, `"RETRIEVER"` |
| `input.value` | Operation input | JSON or text |
| `output.value` | Operation output | JSON or text |
| `user.id` | User identifier | `"user_123"` |
| `session.id` | Conversation ID | `"session_abc"` |
| `llm.model_name` | Model identifier | `"gpt-4"` |
| `llm.token_count.total` | Token usage | `1500` |
| `tool.name` | Tool/function name | `"get_weather"` |
## Common Workflows
**Quick Start:**
1. `setup-{lang}` → Install and configure
2. `instrumentation-auto-{lang}` → Enable auto-instrumentation
3. Check Phoenix for traces
**Custom Spans:**
1. `setup-{lang}` → Install
2. `instrumentation-manual-{lang}` → Add decorators/wrappers
3. `span-{type}` → Reference attributes
**Production:** `production-{lang}` → Configure batching and masking
## How to Use
Read individual rule files in `rules/` for detailed explanations and examples:
```
rules/setup-python.md
rules/instrumentation-manual-typescript.md
rules/span-llm.md
```
Use file prefixes to find what you need:
```bash
ls rules/span-* # Span type specifications
ls rules/*-python.md # Python guides
ls rules/*-typescript.md # TypeScript guides
```
## References
**Phoenix Documentation:**
- [Phoenix Documentation](https://docs.arize.com/phoenix)
- [OpenInference Spec](https://github.com/Arize-ai/openinference/tree/main/spec)
**Python API Documentation:**
- [Python OTEL Package](https://arize-phoenix.readthedocs.io/projects/otel/en/latest/) - `arize-phoenix-otel` API reference
- [Python Client Package](https://arize-phoenix.readthedocs.io/projects/client/en/latest/) - `arize-phoenix-client` API reference
**TypeScript API Documentation:**
- [TypeScript Packages](https://arize-ai.github.io/phoenix/) - `@arizeai/phoenix-otel`, `@arizeai/phoenix-client`, and other TypeScript packages