OpenLLMetry is a free, open source machine learning infrastructure project written in Python and released under Apache-2.0. It has 7,516 GitHub stars, 1,183 forks and 676 open issues, and was last pushed 13 hours ago. On this registry it ranks #26 of 89 tracked projects in Machine Learning Infrastructure, with 5 head-to-head comparisons available. It gained 53 stars over the last 30 tracked days.

What is OpenLLMetry?

OpenLLMetry is an Apache-2.0 set of OpenTelemetry-based extensions, built and maintained by Traceloop, that gives complete observability over Python GenAI and LLM applications, and it is aimed at teams already running LLM workloads that need tracing, metrics, and model monitoring without adopting a proprietary agent.

What it is

OpenLLMetry is a set of extensions built on top of OpenTelemetry, and it provides complete observability over an LLM application. The repository contains standard OpenTelemetry instrumentations for LLM providers and Vector DBs, as well as a Traceloop SDK that makes it easy to get started while still outputting standard OpenTelemetry data that can be connected to an existing observability stack. The project is built and maintained by Traceloop under the Apache 2.0 license, is written in Python, and lives in the AI & Machine Learning / Machine Learning Infrastructure category. A separate JS/TS implementation, OpenLLMetry-JS, exists for JavaScript and TypeScript applications.

The concrete problem it solves is that LLM calls, vector database lookups, and model interactions are opaque to conventional application tracing, so teams end up with hand-rolled logging around provider clients instead of a uniform signal. OpenLLMetry supplies the instrumentation layer for those calls and emits it as OpenTelemetry data, which means traces and metrics land in observability tooling that a team already operates. Because it uses OpenTelemetry under the hood, it can be connected to existing observability solutions such as Datadog and Honeycomb rather than forcing a new backend.

Key capabilities

  • Standard OpenTelemetry instrumentations for LLM providers and Vector DBs, so model and retrieval calls are traced without custom spans.
  • The traceloop-sdk package with Traceloop.init(), which instruments an application in a single call.
  • Traceloop.init(disable_batch=True) for local runs, so traces appear immediately instead of waiting on batch sending.
  • Standard OpenTelemetry output that can be pointed at many destinations, including OpenTelemetry Collector, Datadog, Honeycomb, Grafana, Dynatrace, New Relic, Splunk, SigNoz, Sentry, Axiom, Azure Application Insights, Google Cloud, Oracle Cloud, Tencent Cloud, IBM Instana, KloudMate, Laminar, Braintrust, Dash0, Highlight, HyperDX, Scorecard, Service Now Cloud Observability, and Traceloop itself.
  • Direct use of individual instrumentations for applications that already have OpenTelemetry configured, without adopting the full SDK.
  • Semantic conventions for LLM observability that are now part of OpenTelemetry, produced through the upstream community process.
  • A parallel JS/TS implementation, OpenLLMetry-JS, for non-Python services.

Who uses it and how

  • Python teams instrumenting an LLM application who want traces of provider calls and vector database queries flowing into an existing observability stack.
  • Organizations already running OpenTelemetry that add OpenLLMetry instrumentations directly instead of a second SDK.
  • Teams whose traces must land in an incumbent vendor such as Datadog, Honeycomb, New Relic, Dynatrace, Grafana, or Splunk, using the supported destination for each.
  • Developers working locally who set disable_batch=True to see traces as they are produced.
  • Contributors: the topics include good-first-issue, good-first-issues, and help-wanted, and the repository carries 7,437 stars and 1,083 forks.

Getting started

Install the SDK with pip install traceloop-sdk, then add from traceloop.sdk import Traceloop and Traceloop.init() to the application. Full setup guidance lives in the docs at traceloop.com/docs/openllmetry/getting-started-python.

How it compares

OpenLLMetry sits on the OpenTelemetry standard rather than replacing the backend, so it competes with the instrumentation layer of proprietary LLM monitoring agents while leaving the storage and query layer to the vendor a team already uses. Its semantic conventions have been contributed upstream to OpenTelemetry, which keeps the trace schema portable across destinations, and the sibling OpenLLMetry-JS project extends the same approach to JavaScript and TypeScript services.

When to use it — and when not to

A self-hoster must operate an OpenTelemetry pipeline and whichever destination backend is chosen, since OpenLLMetry produces telemetry rather than storing or displaying it. Teams that want a single hosted product with no collector, exporter configuration, or backend to run should not pick it. The repository currently shows 676 open issues, last push on 2026-09-16, and the readme excerpt is truncated with substantive setup detail deferred to an external documentation site, so assess triage load and documentation depth before committing.

project readme (upstream, from github) — read inline

Open-source observability for your LLM application

Get started »

Slack | Docs | Website

OpenLLMetry is released under the Apache-2.0 License git commit activity PRs welcome! Slack community channel Traceloop Twitter

🎉 New: Our semantic conventions are now part of OpenTelemetry! Join the discussion and help us shape the future of LLM observability.

Looking for the JS/TS version? Check out OpenLLMetry-JS.

OpenLLMetry is a set of extensions built on top of OpenTelemetry that gives you complete observability over your LLM application. Because it uses OpenTelemetry under the hood, it can be connected to your existing observability solutions - Datadog, Honeycomb, and others.

It's built and maintained by Traceloop under the Apache 2.0 license.

The repo contains standard OpenTelemetry instrumentations for LLM providers and Vector DBs, as well as a Traceloop SDK that makes it easy to get started with OpenLLMetry, while still outputting standard OpenTelemetry data that can be connected to your observability stack. If you already have OpenTelemetry instrumented, you can just add any of our instrumentations directly.

🚀 Getting Started

The easiest way to get started is to use our SDK. For a complete guide, go to our docs.

Install the SDK:

pip install traceloop-sdk

Then, to start instrumenting your code, just add this line to your code:

from traceloop.sdk import Traceloop

Traceloop.init()

That's it. You're now tracing your code with OpenLLMetry! If you're running this locally, you may want to disable batch sending, so you can see the traces immediately:

Traceloop.init(disable_batch=True)

⏫ Supported (and tested) destinations

See our docs for instructions on connecting to each one.

🪗 What do we instrument?

OpenLLMetry can instrument everything that OpenTelemetry already instruments - so things like your DB, API calls, and more. On top of that, we built a set of custom extensions that instrument things like your calls to OpenAI or Anthropic, or your Vector DB like Chroma, Pinecone, Qdrant or Weaviate.

Vector DBs

Frameworks

Protocol

🔎 Telemetry

We no longer log or collect any telemetry in the SDK or in the instrumentations. Make sure to bump to v0.49.2 and above.

Why we collect telemetry

  • The primary purpose is to detect exceptions within instrumentations. Since LLM providers frequently update their APIs, this helps us quickly identify and fix any breaking changes.
  • We only collect anonymous data, with no personally identifiable information. You can view exactly what data we collect in our Privacy documentation.
  • Telemetry is only collected in the SDK. If you use the instrumentations directly without the SDK, no telemetry is collected.

🌱 Contributing

Whether big or small, we love contributions ❤️ Check out our guide to see how to get started.

Not sure where to get started? You can:

💚 Community & Support

  • Slack (For live discussion with the community and the Traceloop team)
  • GitHub Discussions (For help with building and deeper conversations about features)
  • GitHub Issues (For any bugs and errors you encounter using OpenLLMetry)
  • Twitter (Get news fast)

🙏 Special Thanks

To @patrickdebois, who suggested the great name we're now using for this repo!

💫 Contributors

contributors

Frequently asked questions

Is OpenLLMetry free to use?

OpenLLMetry is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does OpenLLMetry do?

Monitor LLM performance with open-source observability

What is OpenLLMetry written in?

OpenLLMetry is primarily written in Python. Its source is publicly available at https://github.com/traceloop/openllmetry, and it has 7,516 GitHub stars.