Documentation Index
Fetch the complete documentation index at: https://www.adaline.ai/docs/llms.txt
Use this file to discover all available pages before exploring further.
OpenTelemetry
Use OpenTelemetry when you already have tracing in place and want Adaline to ingest those spans with minimal application changes. Adaline accepts OTLP/HTTP traces, and the@adaline/otel / adaline-otel packages help route them to the Adaline OTEL ingestion endpoint.
This integration is best when your application is already instrumented with OpenTelemetry, either manually or through a framework that emits OpenTelemetry spans.
Prerequisites
Before you start, make sure you have:- An Adaline account.
- A workspace API key — create one under Settings → API keys.
- Your project ID — copy it from Monitor → Copy Project ID.
Install
- TypeScript
- Python
Configure routing and auth
Set your Adaline credentials in environment variables, then attach the Adaline exporter or span processor to your existing OpenTelemetry pipeline.ADALINE_API_KEY is required in all cases.
Use one of the following routing values:
ADALINE_PROJECT_IDwhen you want spans to land directly in a projectADALINE_PARENTwhen you want downstream services to attach spans to an existing Adaline parent
Set either
ADALINE_PROJECT_ID or ADALINE_PARENT, but not conflicting values for both.For batching and flush tuning — interval, batch size, and queue limits — see Configuration options below.
Choose an integration path
Use whichever path matches your current setup:AdalineSpanProcessorif you want Adaline to manage batching for spans exported from your tracer providerAdalineExporterif you already manage your ownBatchSpanProcessoror exporter chain- raw OTLP configuration if you want to point an existing collector/exporter directly at Adaline without using the package
Configure the AdalineSpanProcessor
The application logic that creates spans does not need to change. You only need to add the Adaline span processor to the tracer provider you already use.
- TypeScript
- Python
Configure the AdalineExporter
Use the exporter directly when you already manage your own batch processor and only want Adaline as the OTLP destination.
- TypeScript
- Python
Send OTLP traces directly to Adaline
If you already have an OTLP HTTP exporter or collector in place, you can point it directly at Adaline without using the package helpers.- endpoint:
https://api.adaline.ai/otel/v1/traces - required header:
Authorization: Bearer <ADALINE_API_KEY> - routing header: either
x-adaline-project-id: <PROJECT_ID>orx-adaline-parent: <PARENT>
Basic example
This example stays intentionally small: one manually-created GenAI span with prompt and completion attributes. That is enough to validate the OTEL wiring without turning the docs into a full sample application.- TypeScript
- Python
Distributed tracing and multi-service workflows
If one service starts the trace and another service continues the work, create the Adaline parent once and propagate it downstream. Child services can recover that parent from incoming headers and attach new spans to the same trace.- TypeScript
- Python
AI span filtering
The Adaline OTel packages can optionally export only AI-related spans by settingADALINE_OTEL_FILTER_AI_SPANS=true.
When that filter is enabled, the package keeps spans whose span name or attribute keys start with one of these prefixes:
gen_ai.adaline.llm.ai.traceloop.
Configuration options
| Option | Description |
|---|---|
ADALINE_API_KEY | Required. Authenticates OTLP exports to Adaline. |
ADALINE_API_URL | Optional. Defaults to https://api.adaline.ai. |
ADALINE_PROJECT_ID | Routes spans into a project when no explicit parent is supplied. |
ADALINE_PARENT | Routes spans to an existing Adaline parent for distributed tracing. |
ADALINE_OTEL_FILTER_AI_SPANS | When true, exports only spans identified as AI spans. |
ADALINE_OTEL_FLUSH_INTERVAL | Batch flush interval in seconds. Defaults to 5. |
ADALINE_OTEL_MAX_BATCH_SIZE | Maximum number of spans per export batch. Defaults to 100. |
ADALINE_OTEL_MAX_QUEUE_SIZE | Maximum in-memory queue size before flush pressure applies. Defaults to 1000. |
Supported span patterns
Adaline works best with AI-oriented OpenTelemetry spans, especially spans that already carry GenAI-style attributes. In practice, that means:- spans with
gen_ai.*attributes - spans emitted by frameworks that already use OpenTelemetry for LLM, tool, or retrieval steps
- custom spans that you annotate yourself with AI-related attributes
Next steps
Instrument with the Adaline SDK
Monitor lifecycle, buffering and batching, retries, serverless flushing, and graceful shutdown.
SDK reference
Full class and type reference for the TypeScript and Python SDKs.
All integrations
Browse every framework and AI-provider integration Adaline supports.
View your logs
Open Adaline to see traces and spans land in your project.