The LLM observability SDKs that PyPI projects actually import

Published 14 November 2026 · Data as of 13 November 2026

Scripts and results for this post on GitHub

The LLM observability SDKs PyPI projects importData as of 13 Nov 2026Projects that importit571 ✓import Langfuse278import LangSmithNext266Arize Phoenix / OpenInference239Pydantic LogfireLLM projects thatimport any tracingSDK4.8%1,235 of 25,906LangSmith gets 93M downloads a month to Langfuse's 31M, because every LangChain installpulls it in. Yet only half as many projects import it.Latest release of 354,763 PyPI projects, 13 Nov 2026. The tools' own packages are notcounted. Downloads: pypistats.org. py-code.org
The LLM observability SDKsPyPI projects importData as of 13 Nov 2026Projects that import it571 ✓import Langfuse278import LangSmithNext266Arize Phoenix /OpenInference239Pydantic LogfireLLM projects that import any tracing SDK4.8%1,235 of 25,906LangSmith gets 93M downloads a month toLangfuse's 31M, because every LangChaininstall pulls it in. Yet only half asmany projects import it.Latest release of 354,763 PyPI projects,13 Nov 2026. The tools' own packages arenot counted. Downloads: pypistats.org.py-code.org

Lists of LangSmith and Langfuse alternatives rank tools by features, prices and GitHub stars. Of the seven top-ranking lists we read, six are published by a vendor that puts its own product first. This post ranks 22 LLM observability SDKs by a different measure: how many published Python projects import each one in their code.

py-code.org reads the code in the latest release of 354,763 PyPI projects and records every import. We counted the projects that import each SDK. We left out the vendor's own add-on packages, such as langfuse-* packages, so the count shows projects built by other people.

The short answer

QuestionAnswerKey number
Which LLM observability SDK do the most projects import?Langfuse571 projects
Langfuse vs LangSmith?Langfuse is imported by about twice as many projects. LangSmith is downloaded more, because every LangChain install pulls it in.571 vs 278 projects; 31M vs 93M downloads a month
Which alternatives come next?Arize Phoenix with OpenInference, Pydantic Logfire, OpenLLMetry and MLflow Tracing266, 239, 152 and 121 projects
How many LLM projects import any tracing SDK?Fewer than 1 in 201,235 of 25,906 (4.8%)

Verdict: Langfuse is the SDK the most PyPI projects import, ahead of LangSmith, Arize Phoenix and Pydantic Logfire. Ranked by downloads, LangSmith leads with three times Langfuse's downloads, because every LangChain install pulls it in as a dependency. So downloads say more about LangChain's reach than about who chose LangSmith.

LLM observability tools ranked by the projects that import them

The table counts the projects whose code imports each SDK. "Of the top 60,000" counts the ones among the 60,000 most downloaded projects on PyPI. The downloads column is the SDK package's own downloads in the last month, from pypistats.org.

SDKProjectsOf the top 60,000Downloads, last month
Langfuse5719031M
LangSmith2784893M
Arize Phoenix / OpenInference2667312M (openinference-semantic-conventions)
Pydantic Logfire2397419M
OpenLLMetry (Traceloop)152442.1M (traceloop-sdk only)
MLflow Tracing1213222M (all of MLflow)
W&B Weave54120.8M
Comet Opik50122.7M
AgentOps2690.09M
Braintrust2568.4M
Laminar2044.3M
LangWatch1320.4M
OpenLIT1330.4M
TruLens1130.03M
Literal AI1030.5M
Lunary1050.2M
Datadog LLM Observability6248M (all of ddtrace)
PromptLayer640.1M
HoneyHive310.01M
Galileo210.06M
Langtrace200.01M
Helicone000.00M
LLM observability SDKs imported by PyPIprojectsprojects that import itLangfuse571LangSmith278Arize Phoenix266Pydantic Logfire239OpenLLMetry152MLflow Tracing121W&B Weave54Comet Opik50AgentOps26Braintrust25Laminar20LangWatch13
Projects whose code imports each LLM observability SDK, not counting the vendor's own packages, for the twelve SDKs with the most. Data as of 13 November 2026.

How to read the table: a project counts once per SDK, however many files import it. The Arize Phoenix row counts OpenInference, Arize's open-source tracing libraries, together with Phoenix, Arize's app for viewing traces. Its downloads are for openinference-semantic-conventions, which every OpenInference and Phoenix install includes. The OpenLLMetry row includes traceloop and Traceloop's opentelemetry-instrumentation-* packages for LLM providers. The MLflow Tracing row includes only MLflow's tracing and GenAI autolog calls, not all of MLflow.

Langfuse vs LangSmith: more projects import Langfuse, more installs pull in LangSmith

571 projects import langfuse, and 278 import langsmith. Downloads point the other way: langsmith had 93 million downloads in the last month and langfuse had 31 million. The reason is the dependency tree. langchain-core lists langsmith as a required dependency, so every install of LangChain or LangGraph also installs LangSmith, whether or not anyone traces anything.

The import count also misses some LangSmith users. LangSmith's docs say that "no extra code is needed to log a trace" from a LangChain app: setting the environment variable LANGSMITH_TRACING=true and an API key is enough (LangSmith docs). A project that traces this way never imports langsmith. So for LangChain code, the 278 is a lower bound.

Key point: even among projects that use LangChain, more import Langfuse (224) than LangSmith (172). LangSmith's lead is in downloads, and much of that comes from the dependency.

Langfuse and LangSmith also differ in licence. Langfuse's repository is MIT licensed, except for its ee folders, and can be self-hosted (Langfuse on GitHub). ClickHouse acquired Langfuse in January 2026, and Langfuse's announcement says it "stays open source and self-hostable" (Langfuse blog). LangSmith is made by LangChain, the company behind the LangChain framework.

Langfuse users connect it in several ways. Among the projects that import it, 117 import its LangChain callback (langfuse.langchain), 50 import its drop-in OpenAI client (langfuse.openai), and 54 import the observe decorator directly.

Which observability SDK goes with which agent framework

Each framework's users pick a different tracing SDK. The table lists, for the most imported agent frameworks, how many of the projects that import the framework also import any observability SDK, and the three SDKs they import most.

FrameworkProjectsAlso import an observability SDKSDKs they import most
LangChain6,779535 (8%)Langfuse (224), LangSmith (172), Arize Phoenix / OpenInference (106)
LangGraph2,417332 (14%)Langfuse (132), LangSmith (117), Arize Phoenix / OpenInference (53)
Pydantic AI1,203185 (15%)Pydantic Logfire (103), Langfuse (44), Arize Phoenix / OpenInference (38)
CrewAI1,18466 (6%)Arize Phoenix / OpenInference (24), Langfuse (24), LangSmith (19)
LlamaIndex1,11198 (9%)Langfuse (35), Arize Phoenix / OpenInference (27), LangSmith (23)
Claude Agent SDK97375 (8%)Arize Phoenix / OpenInference (29), Langfuse (26), LangSmith (17)
OpenAI Agents SDK84067 (8%)Arize Phoenix / OpenInference (28), Langfuse (20), Pydantic Logfire (12)
Google ADK54657 (10%)Arize Phoenix / OpenInference (28), Langfuse (14), LangSmith (13)
Haystack37920 (5%)Arize Phoenix / OpenInference (8), Langfuse (8), LangSmith (6)
DSPy31055 (18%)Arize Phoenix / OpenInference (18), Langfuse (17), MLflow Tracing (15)
  • Pydantic AI and Logfire. 103 of the 239 projects that import Logfire also import Pydantic AI. Both come from the Pydantic team, and the full pydantic-ai package installs Logfire as an extra (pydantic-ai on PyPI).
  • LangChain and LangGraph projects import Langfuse first and LangSmith second.
  • The newer agent SDKs (Claude Agent SDK, OpenAI Agents SDK and Google ADK) import Arize's OpenInference more often than Langfuse, though the numbers are small: 29 against 26 projects for the Claude Agent SDK. OpenInference publishes one instrumentation package per framework, such as openinference-instrumentation-openai-agents. CrewAI projects are split evenly between Langfuse and OpenInference.

OpenTelemetry-based SDKs: OpenInference, OpenLLMetry, Logfire and OpenLIT

Several SDKs build on OpenTelemetry, so their traces can go to any backend that accepts OpenTelemetry data, not only the vendor's.

  • OpenInference is Arize's "set of conventions and plugins that is complementary to OpenTelemetry", supported natively by Arize Phoenix and Arize AX, and usable with any OpenTelemetry-compatible backend (OpenInference on GitHub). So OpenInference records the traces, and Phoenix is one place to view them. The table counts both in one row: 266 projects import either, 220 of them import openinference, and 46 import only Phoenix's or Arize's own modules. By downloads, openinference-semantic-conventions, which every OpenInference instrumentation package and Phoenix require, had 12 million in the last month, and arize-phoenix itself had 0.6 million.
  • OpenLLMetry is Traceloop's "set of extensions built on top of OpenTelemetry" (OpenLLMetry on GitHub). Its instrumentation packages carry the plain names opentelemetry-instrumentation-openai, -anthropic and -langchain, so many projects use OpenLLMetry without importing anything called Traceloop. Counting the traceloop module and these instrumentation packages together, 152 projects import OpenLLMetry.
  • Pydantic Logfire (239 projects) is also built on OpenTelemetry. Of the projects that import it, 73 call logfire.instrument_pydantic_ai.
  • OpenLIT is imported by 13 projects.

Langfuse and LangSmith alternatives, by usage

After the top four, the counts drop quickly:

  • MLflow Tracing (121 projects). The mlflow package also covers experiment tracking and model serving, so its 22 million downloads in the last month do not measure tracing use. Of the projects that use its tracing, 15 also import DSPy.
  • W&B Weave (54) and Comet Opik (50).
  • AgentOps (26), Braintrust (25) and Laminar (20). Braintrust had 8.4 million downloads and Laminar 4.3 million, far more than their import counts suggest.
  • LangWatch (13), TruLens (11), Lunary (10), Literal AI (10) and PromptLayer (6).
  • Datadog LLM Observability (6). It ships inside ddtrace, Datadog's general tracing package, so we counted only imports of ddtrace.llmobs.
  • Helicone (0 projects). Helicone works as a gateway: its quick start points the OpenAI client's base URL at Helicone (Helicone docs), so code never imports it. Mintlify acquired Helicone in March 2026 and said it "will continue operating in maintenance mode" (Mintlify).

Tip: before you pick one, search py-code.org for the SDK's module to see which projects like yours use it and how they call it, for example langfuse, openinference or logfire. Each result links to the file and line.

Fewer than 1 in 20 LLM projects import a tracing SDK

25,906 projects import an LLM SDK (OpenAI, Anthropic or LiteLLM) or one of the agent frameworks we counted. Only 1,235 of them (4.8%) also import an LLM observability SDK. Across all 354,763 projects, 1,597 import one.

This understates tracing in deployed apps. Many PyPI projects are libraries, and we expect a library to leave tracing to the application that uses it. LangSmith with LangChain and Helicone can also trace an app without an import in its code. What the count does show is which SDKs developers write code against when they add tracing to something they publish.

Evaluation libraries and gateways: Ragas, DeepEval and Portkey

Evaluation libraries score an LLM's answers rather than record traces, so they are not in the ranking above. The two most imported are Ragas (143 projects) and DeepEval (143 projects). Portkey, an LLM gateway, is not in the ranking either: 35 projects import it.

How to check who uses an SDK

  • On py-code.org, search for a module to see the most downloaded projects that import it, with the file and line: langfuse, langsmith, logfire.
  • From a terminal: uvx py-code-org who-uses langfuse lists the same projects.

You can count the importers yourself on the Hugging Face copy of the index, in your browser or with DuckDB. The query below counts every project that imports each plain module name. Like the table, it leaves out each vendor's own packages and the iflow-mcp* copies, so most of its counts match the table's. The rows for OpenInference and Traceloop are lower, because the table also counts other modules for them, such as Phoenix's and Traceloop's instrumentation modules.

In your browser, on Hugging Face

The dataset's SQL console runs DuckDB inside your browser, and you need no account. Open this query in the console. The first run can stop with "Table with name refs does not exist", because it starts before the table has loaded. Click Run Query again: the console then loads refs and runs the query. To type it yourself, open the dataset viewer, click SQL Console, click refs under Subsets and Splits to load it, and use refs as the table name:

SELECT module, count(DISTINCT project) AS projects
FROM refs
WHERE module IN ('langfuse', 'langsmith', 'logfire', 'openinference', 'traceloop',
                 'weave', 'opik', 'agentops', 'braintrust', 'lmnr')
  -- leave out each SDK's own packages (langfuse-*, openinference-*) and the iflow-mcp copies
  AND NOT starts_with(lower(project), 'iflow-mcp')
  AND NOT starts_with(replace(replace(lower(project), '_', '-'), '.', '-') || '-', module || '-')
GROUP BY module
ORDER BY projects DESC;

In our test the first run took about 4 minutes, most of it loading the 40 million rows of refs into the browser. Later queries took a few seconds. The console reads the latest build of the dataset, which is rebuilt weekly. It matched this post on 14 November 2026, and its counts will drift after the next rebuild.

With DuckDB, on the exact snapshot

DuckDB reads the same Parquet files from Hugging Face in place. The @9d81d70d… in each path pins the 13 November 2026 build, so this query always gives the same numbers:

SELECT module, count(DISTINCT project) AS projects
FROM 'hf://datasets/pypi-data/py-code@9d81d70d6519d77f4dee4811b3e3a5d88379c17d/refs.parquet'
WHERE module IN ('langfuse', 'langsmith', 'logfire', 'openinference', 'traceloop',
                 'weave', 'opik', 'agentops', 'braintrust', 'lmnr')
  -- leave out each SDK's own packages (langfuse-*, openinference-*) and the iflow-mcp copies
  AND NOT starts_with(lower(project), 'iflow-mcp')
  AND NOT starts_with(replace(replace(lower(project), '_', '-'), '.', '-') || '-', module || '-')
GROUP BY module
ORDER BY projects DESC;

It returned:

┌───────────────┬──────────┐
│    module     │ projects │
│    varchar    │  int64   │
├───────────────┼──────────┤
│ langfuse      │      571 │
│ langsmith     │      278 │
│ logfire       │      239 │
│ openinference │      227 │
│ traceloop     │       74 │
│ weave         │       54 │
│ opik          │       50 │
│ agentops      │       26 │
│ braintrust    │       26 │
│ lmnr          │       20 │
└───────────────┴──────────┘
  10 rows        2 columns

The script behind every number in this post, with the exact rules for each SDK, is in the pypi-data/blog repository with its results.

How the numbers were counted

  • Which projects. The index holds the latest release of 354,763 projects: every project released between 13 November 2025 and 13 November 2026, plus the 60,000 most downloaded projects even when their latest release is older.
  • What counts as using an SDK. A project counts when the code in its latest release imports the SDK's module anywhere, including tests and examples. Environment-variable setups and proxies, which need no import, are not counted.
  • Vendor packages left out. Projects whose names start with the SDK's own name, such as langfuse-* or openinference-*, are not counted for that SDK. We also dropped 2,144 iflow-mcp_* projects, which are copies of other people's MCP servers republished under one prefix.
  • Downloads. Package downloads are for the last month, from pypistats.org, fetched on 14 November 2026. "Of the top 60,000" uses the index's own ranking, which comes from ClickHouse's public PyPI dataset.

Frequently asked questions

What is the most used LLM observability tool?

Among PyPI projects, Langfuse: 571 projects import it, against 278 for LangSmith, 266 for Arize Phoenix and OpenInference and 239 for Pydantic Logfire. The counts leave out each vendor's own packages.

Langfuse vs LangSmith: which is used more?

More projects import Langfuse (571) than LangSmith (278). LangSmith has more downloads, 93 million a month against 31 million, because langchain-core requires it, so every LangChain install includes it.

What are the best open-source alternatives to LangSmith?

By the number of PyPI projects that import them, the open-source options with the most users are Langfuse (571 projects), Arize Phoenix with OpenInference (266) and OpenLLMetry (152). Langfuse's repository is MIT licensed except for its ee folders, and it can be self-hosted.

Is Langfuse still open source after the ClickHouse acquisition?

ClickHouse acquired Langfuse in January 2026. Langfuse's announcement says it stays open source and self-hostable and that there are no planned changes to licensing.

Does LangSmith require code changes to trace a LangChain app?

No. LangSmith's docs say no extra code is needed: setting LANGSMITH_TRACING=true and an API key is enough for a LangChain app. Projects that trace this way never import langsmith, so import counts undercount it.

Which observability SDK should I use with Pydantic AI?

Most projects that trace Pydantic AI use Pydantic Logfire: 103 projects import both, against 44 for Langfuse. Logfire comes from the Pydantic team, and the full pydantic-ai package installs it.

Sources