Skip to main content
OpenLIT uses OpenTelemetry Auto-Instrumentation to help you monitor LLM applications built using models from HuggingFace. This includes tracking performance, token usage, costs, 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
  • HuggingFace Transformers Python SDK client >= 4.48.0
  • HuggingFace Inference TypeScript SDK (@huggingface/inference) >= 2.0.0
  • Transformers.js (@huggingface/transformers >= 3 or @xenova/transformers) for local inference

Supported APIs

SDKInstrumented surfaceInference type
PythonTextGenerationPipeline.__call__Local (transformers)
TypeScript@huggingface/inference chat completionsRemote (Inference API)
TypeScriptTransformers.js pipeline calls (@huggingface/transformers / @xenova/transformers)Local
Local text-generation is reported as the chat operation to match the Python SDK. Other local Transformers.js pipelines (summarization, translation, fill-mask, question-answering, classification) are reported as text_completion, and feature-extraction / sentence-similarity as embeddings.

Prerequisites

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

TypeScript example (local Transformers.js)

import openlit from "openlit";

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

import { pipeline } from "@huggingface/transformers";

const generator = await pipeline("text-generation", "Xenova/distilgpt2");
const output = await generator("OpenTelemetry makes observability", {
  max_new_tokens: 32,
  temperature: 0.7,
});

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: ['transformers']Disables the local Transformers.js instrumentation
disabledInstrumentors: ['huggingface']Disables the remote Inference API 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.