openllmetry
基于 OpenTelemetry 的 LLM 应用全链路追踪工具,支持 30+ 模型和向量数据库
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于 OpenTelemetry 的 LLM 应用全链路追踪工具,支持 30+ 模型和向量数据库
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这个场景:你的 AI 聊天机器人上线了,用户反馈"回答越来越慢""偶尔答非所问",但你打开服务器日志,看到的只是密密麻麻的 HTTP 请求和数据库查询,完全无法定位问题出在哪里——是 LLM 的 token 消耗异常?是提示词退化?还是向量检索拖慢了速度?
OpenLLMetry 就是来解决这个问题的。它是 LLM 应用领域的"可观测性(Observability)"工具,核心理念和航空领域的黑匣子一样:记录一切,出了问题可追溯。只要在代码里加一行 Traceloop.init(),你就能看到每一次 LLM 调用的完整轨迹:输入的提示词、返回的响应、token 消耗量、响应延迟、甚至向量数据库的检索结果——全部以标准化的 OpenTelemetry 格式输出,连接到 Datadog、Grafana、Honeycomb 等你已有的监控平台。
图1:OpenLLMetry 项目 Logo
OpenLLMetry 由以色列公司 Traceloop 开发维护,Traceloop 于 2024 年入选 Y Combinator 冬季批次,获得了顶级硅谷孵化器的背书。项目最早源于团队内部需求——他们在构建 AI 应用时发现,传统 APM 工具(如 New Relic、Datadog)对 LLM 调用几乎没有任何有意义的埋点,token 消耗、模型延迟、提示词退化和 RAG 检索质量这些 AI 特有的指标,在传统监控体系里完全是盲区。
团队决定基于 OpenTelemetry(云原生计算基金会旗下的标准化可观测性框架)构建扩展,让 AI 应用的监控数据能够与现有的 IT 监控体系无缝打通。这一选择极具战略眼光:开发者不需要学习新工具,只要你的系统已经接入 OpenTelemetry(比如用 Datadog 或 Grafana),添加 OpenLLMetry 就等于在现有监控大盘上开通了"AI 监控视图",零迁移成本。
OpenLLMetry 的"武器库"极其庞大,这是它区别于其他同类产品的核心优势。
LLM 提供商支持:OpenAI、Anthropic Claude、Google Gemini、AWS Bedrock、Azure OpenAI、Mistral、Cohere、HuggingFace、Ollama(本地)、Groq、Replicate……几乎涵盖了市面上所有主流和新兴的 LLM 服务商。值得注意的是,它对 Ollama 的支持意味着本地部署的开源模型(如 Llama、Qwen)同样可以被追踪,这对注重数据隐私的企业用户非常有吸引力。
向量数据库支持:Chroma、Pinecone、Qdrant、Weaviate、Milvus、LanceDB、Marqo——RAG(检索增强生成)应用的检索质量分析终于有了着落。你可以清晰地看到某次回答背后的检索结果是否相关、向量相似度分数分布是否合理,而不只是笼统地看到"查询耗时 300ms"。
AI 框架集成:LangChain、LlamaIndex、Haystack、CrewAI、Agno、LangGraph、LiteLLM、OpenAI Agents SDK……主流 Agent 框架基本全部覆盖。这意味着即使用 LangChain 构建的复杂多步骤 Agent,OpenLLMetry 也能将每一步的工具调用、工具结果、最终决策完整串联成一条可视化 Trace。
特别值得一提的是 MCP 协议支持:Model Context Protocol 是 Anthropic 主导推出的 AI 工具调用标准,OpenLLMetry 已支持对 MCP 工具的追踪,未来随着 MCP 生态扩大,这一能力会越来越重要。
项目采用 Nx monorepo 架构,使用 Poetry 进行包管理,Python 版本要求 >= 3.10(因为大量使用类型注解和 dataclass 新特性)。
仓库结构清晰:
packages/traceloop-sdk/:核心 SDK,用户直接安装这个包,一行 Traceloop.init() 搞定全链路埋点packages/opentelemetry-instrumentation-xxx/:每个被支持的 LLM/向量DB/框架都有独立子包(如 opentelemetry-instrumentation-openai、opentelemetry-instrumentation-langchain),遵循 opentelemetry-instrumentation-xxx 命名规范,可以独立安装packages/opentelemetry-semantic-conventions-ai/:AI 领域的 OpenTelemetry 语义约定规范,定义了 LLM 调用、向量检索等操作的标准化属性名称(如 gen_ai.response.id、gen_ai.token_usage.total_tokens),Traceloop 正在推动这一规范进入 OpenTelemetry 官方标准代码质量方面,项目配置了 mypy 严格类型检查(disallow_untyped_defs、strict_equality 等),以及 pytest 测试套件,使用 VCRpy 做录制式测试(录制真实的 API 调用响应用于回归测试),确保对 LLM 提供商 API 的兼容性持续有效。
对终端用户来说,OpenLLMetry 的使用体验极为简洁:
pip install traceloop-sdk
from traceloop.sdk import Traceloop
Traceloop.init()
这比给 Flask 应用加 OpenTelemetry 还要简单——无需配置 Collector,无需编写埋点代码,SDK 会自动检测并 hook 所有已安装的 instrumentations(OpenAI、Anthropic、LangChain 等),自动将追踪数据发送到配置的后端(Traceloop 平台本身、Datadog、Grafana、或者任何 OpenTelemetry Collector)。
本地调试时加上 disable_batch=True,追踪数据会实时打印到控制台,无需等待批量发送周期。
厂商锁定风险:OpenLLMetry 的语义约定虽然正在向 OpenTelemetry 官方推进,但目前仍处于提案阶段。如果 Traceloop 公司战略方向发生变化或项目停止维护,这些约定可能面临迁移成本。
生产环境配置有门槛:官方"两行代码接入"的体验仅适用于快速验证,真正的生产环境需要配置 OTLP 端点、处理采样策略(高 QPS 下全量追踪会产生大量数据)、配置敏感信息过滤(用户提示词和回答可能包含隐私数据)。这些不在 SDK 文档的"Getting Started"里,需要查阅集成指南。
国内生态支持有限:腾讯云(Tencent Cloud)虽有集成,但阿里云百炼、百度千帆、字节豆包等国内 LLM 提供商暂未支持,对面向国内市场的 AI 应用团队价值打了折扣。
随着 LLM 应用从"能用"走向"用好",可观测性会成为继日志、指标、链路追踪之后,运维体系的第四极。OpenLLMetry 的价值在于,它用 OpenTelemetry 生态打通了 AI 监控与传统 APM 的壁垒——企业不需要推翻已有的监控体系重新建设,只要加一个 instrumentation 层,就能让 AI 应用的性能优化进入数据驱动时代。
项目背后 Y Combinator 的背书也值得关注:YC 选择投资可观测性而非某个具体 LLM 应用,意味着顶级孵化器判断 AI 基础设施层存在系统性机会。Traceloop 的路线图正在从"LLaMA应用可观测"扩展到"LLaMA生态可观测",未来可能成为 AI 应用运维的事实标准工具之一。