opentelemetry-util-genai
OpenTelemetry GenAI Utils
What it is and what it does
OpenTelemetry Util for GenAI is a standardization layer for instrumenting generative AI libraries. It wraps LLM and embedding invocations to automatically generate spans, metrics, and events following OpenTelemetry semantic conventions. The package provides a TelemetryHandler that manages the lifecycle of AI operations, capturing request parameters, response metadata, token usage, and optionally message content (controlled via environment variables). It also supports uploading prompts and completions to external storage via fsspec-compatible paths.
The package is designed to reduce boilerplate when adding observability to GenAI applications. Instead of manually creating spans and recording metrics for each LLM call, developers use context managers or manual lifecycle methods provided by TelemetryHandler. It sets standard span attributes (operation name, provider, model, server details, token counts) and supports both chat and embedding operations. Message content capture is opt-in and configurable, and event emission can be controlled independently.
Use it for:
- Add observability to applications calling OpenAI, Anthropic, or other LLM providers without writing custom instrumentation code.
- Track token usage and latency across LLM invocations for cost monitoring and performance analysis.
- Archive prompts and completions to cloud storage (GCS, S3, local filesystem) for audit, fine-tuning, or debugging.
- Emit structured events with message content to a LoggerProvider for downstream processing or analysis.
- Standardize telemetry across multiple GenAI libraries using OpenTelemetry semantic conventions.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides standardized instrumentation utilities for generative AI libraries, managing telemetry (spans, metrics, events) around LLM and embedding invocations via OpenTelemetry.
Yes, if you are building observability into a GenAI application and want to follow OpenTelemetry standards. The package is actively maintained, has no known vulnerabilities, and low install friction. It is in beta status (1.0b0), so expect the API to stabilize; verify compatibility with your specific GenAI providers and exporters before production use.
Install
opentelemetry-util-genai on PyPI
pip
pip install opentelemetry-util-genaiuv
uv add opentelemetry-util-genaipoetry
poetry add opentelemetry-util-genaiInstalling opentelemetry-util-genai
Before you install
Low install friction with four lightweight runtime dependencies (opentelemetry-api, opentelemetry-instrumentation, opentelemetry-semantic-conventions, wrapt). Package is actively maintained with recent commits and is in beta status.
License in practice
Licensed under Apache-2.0 (permissive), allowing commercial and private use with minimal restrictions.
Quickstart
pip install opentelemetry-util-genai
from opentelemetry.util.genai.handler import TelemetryHandler
from opentelemetry.util.genai.types import InferenceInvocation
handler = TelemetryHandler()
with handler.chat():
# Your LLM invocation here
pass
Requires Python 3.10 or later. OpenTelemetry API and instrumentation packages must be installed and configured with appropriate exporters for telemetry to be collected.
Verify before relying
- Whether the package works with all major GenAI providers or only specific ones (OpenAI shown in examples).
- Performance overhead of telemetry collection at scale.
- Compatibility with custom OpenTelemetry exporters beyond the standard setup.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — opentelemetry-api, opentelemetry-instrumentation, opentelemetry-semantic-conventions, wrapt |
| Maintenance | actively maintained — 36 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 5,541,228/month — #2,079 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: opentelemetry_util_genai-1.0b0-py3-none-any.whl
Tags
More Monitoring packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
opentelemetry-semantic-conventionsProvides generated Python code for…
permissive · top 100 on PyPI
opentelemetry-sdkProvides the reference implementation of the…
permissive · top 100 on PyPI
opentelemetry-apiProvides the abstract API and interfaces for…
permissive · top 100 on PyPI
opentelemetry-exporter-otlp-proto-httpExports OpenTelemetry observability data to an…
permissive · top 1,000 on PyPI
opentelemetry-instrumentationProvides automatic instrumentation commands and…
permissive · top 1,000 on PyPI
loongsuite-util-genaiExtends OpenTelemetry's GenAI semantic…
permissive · top 5,000 on PyPI
opentelemetry-instrumentation-google-genaiAdds OpenTelemetry instrumentation to the…
permissive · top 5,000 on PyPI
opentelemetry-instrumentation-openai-v2Automatically traces and logs OpenAI API calls…
permissive · top 5,000 on PyPI
opentelemetry-semantic-conventions-aiProvides OpenTelemetry semantic conventions and…
permissive · top 1,000 on PyPI
opentelemetry-instrumentation-voyageaiAutomatically captures and traces Voyage AI API…
permissive · top 5,000 on PyPI
opentelemetry-instrumentation-google-generativeaiAutomatically traces prompts, completions, and…
permissive · top 5,000 on PyPI
genagentGenAgent provides utilities for building…
unclear · top 15,000 on PyPI
opentelemetry-instrumentation-openaiCaptures traces of OpenAI API calls (prompts,…
permissive · top 5,000 on PyPI
opentelemetry-instrumentation-litellmAdds OpenTelemetry tracing to LiteLLM,…
permissive · top 15,000 on PyPI
opentelemetry-instrumentation-openai-agentsAdds distributed tracing to OpenAI Agents…
permissive · top 5,000 on PyPI