Skip to main content

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.

LiteLLM

Use the Adaline LiteLLM logger to send LiteLLM calls into Adaline. The integration attaches through LiteLLM’s callback system and works with the model/provider routing you already use.

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.
See Integrate your AI agent for a full walkthrough. Set both as environment variables before running the examples on this page:
export ADALINE_API_KEY="your-api-key"
export ADALINE_PROJECT_ID="your-project-id"

Install

pip install adaline-client adaline-litellm litellm
Install LiteLLM itself alongside the Adaline integration package.

Initialize Adaline

Create an Adaline client, then initialize a monitor for the target project.
import os

from adaline import Adaline

adaline = Adaline(api_key=os.environ["ADALINE_API_KEY"])
monitor = adaline.init_monitor(project_id=os.environ["ADALINE_PROJECT_ID"])
For production guidance — buffering, batching, retries, serverless flushing, and graceful shutdown — see Instrument with the Adaline SDK.

Attach the LiteLLM logger

Create an AdalineLiteLLMLogger and register it in litellm.callbacks.
import litellm

from adaline_litellm import AdalineLiteLLMLogger

logger = AdalineLiteLLMLogger(monitor=monitor)
litellm.callbacks = [logger]

Basic example

This example keeps the integration intentionally small: one LiteLLM completion with the Adaline logger attached.
import asyncio
import litellm

from adaline_litellm import AdalineLiteLLMLogger

async def main():
    parent_trace = monitor.log_trace(
        name="litellm-run",
        reference_id="litellm-run-1",
    )

    logger = AdalineLiteLLMLogger(
        monitor=monitor,
        parent_trace=parent_trace,
        tags=["litellm"],
    )

    litellm.callbacks = [logger]
    try:
        response = await litellm.acompletion(
            model="gpt-4o-mini",
            messages=[{"role": "user", "content": "Say hello in one word."}],
            max_tokens=20,
        )
    finally:
        litellm.callbacks = []

    parent_trace.end()
    await monitor.flush()


asyncio.run(main())

Use an existing parent trace or span

If you already created a trace or span in Adaline, pass it to the logger so LiteLLM work is attached underneath it.
  • parent_trace
  • parent_span
Pass one or the other, but not both.

What the logger captures

The LiteLLM integration is designed to capture LiteLLM completion activity, including:
  • model and provider metadata
  • input and output payloads from the logged completion
  • token usage when the provider response includes usage fields
  • nested spans under an Adaline parent when provided
This page focuses on how to attach the logger. The exact span shape depends on the LiteLLM calls your application makes.

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.