Integration Overview
Use this integration when your application calls theopenai JavaScript package directly. Asymptote Observe uses OpenLLMetry’s OpenAI instrumentation so OpenAI spans flow through the same exporter and Beacon-compatible attribute path as the rest of your agent telemetry.
Overview
Initialize Asymptote Observe before creating the OpenAI client when possible. The instrumentation captures supported OpenAI SDK spans without changing the way you callopenai.
What Asymptote Captures
- OpenAI model calls emitted by the OpenLLMetry OpenAI instrumentation.
- OpenTelemetry resource attributes such as service name, SDK version,
beacon.origin=cloud, and export mode. - Beacon compatibility hints where supported by the SDK and instrumentation path.
- Errors recorded on failed spans.
Prerequisites
- Node.js 20 or newer.
@asymptote/sdkinstalled.openaiinstalled.ASYMPTOTE_API_KEYset for Asymptote Managed hosted Observe, orOTEL_EXPORTER_OTLP_ENDPOINTset for customer-managed OTLP export. To get an Asymptote Managed API key, reach out for a demo.
Install the SDK and OpenAI client
Set Asymptote Managed and OpenAI environment variables
Getting Started
InitializeObserve before creating the OpenAI client when possible.
Trace OpenAI responses.create
Already-Loaded Clients
If your application imports or creates the OpenAI client before initialization, pass the module toinstrumentModules or patch it after initialization.
Instrument an already-loaded OpenAI module
Group Calls With Custom Spans
Wrap application logic withObserve.observe() when one route, job, or agent turn makes multiple OpenAI calls and you want them grouped under one parent span.
Wrap multiple OpenAI calls
Existing OpenTelemetry Providers
If your application already owns OpenTelemetry setup, register Asymptote’s OpenAI instrumentation with your existing provider instead of callingObserve.initialize() twice.
Register OpenAI instrumentation on an existing provider
Troubleshooting
- Confirm
ASYMPTOTE_API_KEYorOTEL_EXPORTER_OTLP_ENDPOINTis set in the same process that runs the SDK. - Initialize
Observebefore constructing the OpenAI client when possible. - If the OpenAI module is imported before initialization, pass it through
instrumentModulesorObserve.patch(). - Call
Observe.flush()before short-lived scripts or jobs exit.
What’s Next
Instrumentation
Review initialization, module patching, and existing OpenTelemetry provider setup.
Observe
Group multiple model calls and custom agent steps under parent spans.

