7分钟上手Phoenix+OpenTelemetry:零代码构建AI全链路追踪系统
【免费下载链接】phoenix AI Observability & Evaluation 项目地址: https://gitcode.com/gh_mirrors/phoenix13/phoenix
你是否还在为LLM应用的"黑盒困境"发愁?生产环境中用户投诉回答质量下降却找不到根因?本文将带你通过Phoenix与OpenTelemetry(简称OTel)的无缝集成,仅需3步即可实现AI应用的全链路可观测,覆盖从用户查询到模型响应的完整生命周期追踪。
为什么需要AI可观测性
现代LLM应用通常包含提示工程、向量检索、多轮对话等复杂逻辑,传统APM工具无法捕捉这些AI特有环节。Phoenix作为开源AI可观测平台,通过OTel的标准化数据采集能力,解决三大核心痛点:
- 调试难:自动记录完整调用链,包括中间推理步骤
- 优化慢:量化分析RAG系统的检索相关性与回答质量
- 成本高:追踪token消耗与API调用耗时,定位资源浪费
核心组件与架构
Phoenix的OTel集成基于两大核心模块构建:
- phoenix.otel:提供一键式OTel配置,自动设置 exporter 与处理器
- OpenInference:基于OTel语义规范的AI专用埋点库,支持主流框架如LangChain、LlamaIndex
项目结构中关键文件包括:
- 核心实现:packages/phoenix-otel/
- 配置指南:docs/tracing/how-to-tracing/setup-tracing/setup-using-phoenix-otel.md
- 变更记录:packages/phoenix-otel/CHANGELOG.md
快速开始:3步实现全链路追踪
步骤1:环境准备
首先安装必要依赖,Phoenix提供Python和TypeScript两种实现:
# Python环境
pip install arize-phoenix-otel openinference-instrumentation-langchain
# TypeScript环境
npm install @arizeai/phoenix-otel @arizeai/openinference-instrumentation-openai
步骤2:自动埋点配置
在应用入口处添加以下代码,Phoenix会自动检测并 instrumentation 支持的库:
from phoenix.otel import register
# 启动Phoenix UI并配置OTel
register(collector_endpoint="http://localhost:6006")
该配置会自动完成:
- 设置OTLP exporter指向Phoenix collector
- 注册AI专用span处理器
- 集成OpenInference语义规范
步骤3:运行与查看结果
启动应用后访问Phoenix UI(默认http://localhost:6006),可看到三大核心视图:
- 追踪详情页:展示单次请求的完整调用链,包括每个LLM调用的输入输出
- 性能看板:分析p95延迟、吞吐量等关键指标
- 成本分析:按模型/API维度统计token消耗与费用
高级配置:定制化你的追踪系统
自定义Span属性
通过添加自定义元数据增强追踪能力:
from opentelemetry import trace
tracer = trace.get_tracer(__name__)
with tracer.start_as_current_span("custom_rag_step") as span:
span.set_attribute("rag.query", user_question)
span.set_attribute("rag.chunk_count", len(retrieved_docs))
详细方法参见添加元数据指南
多环境部署
生产环境中建议通过环境变量配置:
# 设置Phoenix collector地址
export PHOENIX_COLLECTOR_ENDPOINT=https://phoenix.example.com:4317
# 启用结构化日志
export PHOENIX_OTEL_STRUCTURED_LOGGING=true
常见问题与最佳实践
性能影响
Phoenix采用异步批量处理机制,对应用性能影响<2%。v0.13.0版本后默认使用BatchSpanProcessor,避免SimpleSpanProcessor带来的性能问题。
数据安全
支持敏感信息脱敏:
from phoenix.otel import register
from phoenix.otel.processors import SensitiveDataProcessor
register(
span_processors=[SensitiveDataProcessor(masking_fields=["api_key", "password"])]
)
框架兼容性
已验证支持的AI框架包括:
| 框架 | 包名 | 版本要求 |
|---|---|---|
| LangChain | openinference-instrumentation-langchain | >=0.1.0 |
| LlamaIndex | openinference-instrumentation-llama-index | >=0.2.0 |
| OpenAI | openinference-instrumentation-openai | >=0.1.5 |
完整列表参见集成文档
总结与后续步骤
通过Phoenix与OTel的集成,我们实现了AI应用的全链路可观测。下一步建议:
立即访问项目仓库,开启AI应用的可观测之旅。收藏本文,下期我们将深入探讨如何基于追踪数据优化RAG系统性能。
【免费下载链接】phoenix AI Observability & Evaluation 项目地址: https://gitcode.com/gh_mirrors/phoenix13/phoenix
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



