Skip to main content
OpenLIT uses OpenTelemetry Auto-Instrumentation to help you monitor LLM applications built using Audio and Speech models from ElevenLabs. This includes tracking performance, costs, voice inputs and settings, and how users interact with the application. Auto-instrumentation means you don’t have to set up monitoring manually for different LLMs, frameworks, or databases. By simply adding OpenLIT in your application, all the necessary monitoring configurations are automatically set up. The integration is compatible with
  • ElevenLabs Python SDK client >= 1.4.0
  • ElevenLabs TypeScript SDK client (@elevenlabs/elevenlabs-js or elevenlabs) >= 1.0.0

Supported APIs

SDKInstrumented methods
TypeScriptElevenLabsClient.textToSpeech.convert, .stream, .convertWithTimestamps
PythonTextToSpeechClient.convert and AsyncTextToSpeechClient.convert
TypeScript covers more TTS methods than Python. Python instruments .convert only (sync and async).

Prerequisites

  • Install the ElevenLabs SDK yourself. OpenLIT does not bundle it as a dependency.
  • For TypeScript, call openlit.init() before the ElevenLabs module is first loaded so OpenTelemetry can hook into the SDK at runtime.

TypeScript example

import openlit from "openlit";

openlit.init({ otlpEndpoint: "YOUR_OTEL_ENDPOINT" });

import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";

const client = new ElevenLabsClient({ apiKey: process.env.ELEVENLABS_API_KEY! });
const audio = await client.textToSpeech.convert("voice-id", {
  text: "Hello",
  modelId: "eleven_multilingual_v2", // also accepts model_id / model
});

Configuration

OptionBehavior
captureMessageContentGates gen_ai.input.messages / gen_ai.output.messages on spans and in events
disableEventsSuppresses all inference events
disableMetricsGlobal — metrics instruments are not set up
disabledInstrumentors: ['elevenlabs']Disables this instrumentation
On the Python SDK, inference events are only emitted when capture_message_content is enabled. On the TypeScript SDK, inference events are emitted when disableEvents is false, regardless of captureMessageContent (message fields within the event are still gated by content capture).

Get started

1

Install OpenLIT

Open your command line or terminal and run:
pip install openlit
2

Initialize OpenLIT in your Application

Perfect for existing applications - no code modifications needed:
# Configure via CLI arguments
openlit-instrument \
  --service-name my-ai-app \
  --environment production \
  --otlp-endpoint YOUR_OTEL_ENDPOINT \
  python your_app.py
Perfect for: Legacy applications, production systems where code changes need approval, quick testing, or when you want to add observability without touching existing code.
Replace: YOUR_OTEL_ENDPOINT with the URL of your OpenTelemetry backend, such as http://127.0.0.1:4318 if you are using OpenLIT and a local OTel Collector.To send metrics and traces to other Observability tools, refer to the supported destinations.For more advanced configurations and application use cases, visit the OpenLIT Python repository or OpenLIT Typescript repository.

Quickstart: LLM Observability

Production-ready AI monitoring setup in 2 simple steps with zero code changes

Configuration

Configure the OpenLIT SDK according to you requirements.

Destinations

Send telemetry to Datadog, Grafana, New Relic, and other observability stacks

Zero-code observability with the OpenLIT Controller

Discover and instrument LLM traffic across Kubernetes, Docker, and Linux using eBPF — no code changes required.