Use this file to discover all available pages before exploring further.
Start where it’s automatic. For supported providers and frameworks, install an instrumentor package, call .instrument(), and every call is traced — no per-call code changes.You can start from the Arize AX UI — when you create a new tracing project, the setup wizard walks you through choosing your integration and gives you the code to copy:
# Ask your AI coding agent:"Set up Arize tracing in my application"
Works with Cursor, Claude Code, Codex, and more. The skill analyzes your stack, picks the right OpenInference package, wires it in, and tells you exactly how to verify traces are flowing:
Install the OpenInference instrumentor for your provider, register a tracer provider with your Arize credentials, and call .instrument().
from arize.otel import registerfrom openinference.instrumentation.openai import OpenAIInstrumentortracer_provider = register( space_id="YOUR_SPACE_ID", # Settings > API Keys in Arize AX api_key="YOUR_API_KEY", # Settings > API Keys > + New API Key project_name="my-project",)OpenAIInstrumentor().instrument(tracer_provider=tracer_provider)
import { NodeTracerProvider, SimpleSpanProcessor } from "@opentelemetry/sdk-trace-node";import { registerInstrumentations } from "@opentelemetry/instrumentation";import { resourceFromAttributes } from "@opentelemetry/resources";import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-proto";import OpenAI from "openai";import { OpenAIInstrumentation } from "@arizeai/openinference-instrumentation-openai";const provider = new NodeTracerProvider({ resource: resourceFromAttributes({ ["openinference.project.name"]: "my-project", }), spanProcessors: [ new SimpleSpanProcessor( new OTLPTraceExporter({ url: "https://otlp.arize.com/v1/traces", headers: { 'space_id': 'YOUR_SPACE_ID', 'api_key': 'YOUR_API_KEY', }, }), ), ],});const instrumentation = new OpenAIInstrumentation();instrumentation.manuallyInstrument(OpenAI);registerInstrumentations({ instrumentations: [instrumentation] });provider.register();
const client = new OpenAI();const response = await client.chat.completions.create({ model: "gpt-4o", messages: [{ role: "user", content: "What is observability?" }],});
This example uses OpenAI, but the same pattern works for any provider — install the instrumentor, call .instrument(), and go.
For some frameworks (CrewAI, LangChain, AutoGen, LlamaIndex), .instrument() must run before importing the library — they patch methods at runtime, so objects created earlier will not emit spans. See each integration page for specifics.