OpenTelemetry - 使用任何可观测性工具追踪 LLM
OpenTelemetry 是一个 CNCF 可观测性标准。它可以连接到任何可观测性工具,例如 Jaeger、Zipkin、Datadog、New Relic、Traceloop 等。
入门
安装 OpenTelemetry SDK
pip install opentelemetry-api opentelemetry-sdk opentelemetry-exporter-otlp
设置环境变量(不同的提供商可能需要不同的变量)
- 记录到 Traceloop Cloud
- 记录到 OTEL HTTP Collector
- 记录到 OTEL GRPC Collector
- 记录到 Laminar
OTEL_EXPORTER="otlp_http"
OTEL_ENDPOINT="https://api.traceloop.com"
OTEL_HEADERS="Authorization=Bearer%20<your-api-key>"
OTEL_EXPORTER_OTLP_ENDPOINT="http://0.0.0.0:4318"
OTEL_EXPORTER_OTLP_PROTOCOL=http/json
OTEL_EXPORTER_OTLP_HEADERS="api-key=key,other-config-value=value"
OTEL_EXPORTER_OTLP_ENDPOINT="http://0.0.0.0:4318"
OTEL_EXPORTER_OTLP_PROTOCOL=grpc
OTEL_EXPORTER_OTLP_HEADERS="api-key=key,other-config-value=value"
OTEL_EXPORTER="otlp_grpc"
OTEL_ENDPOINT="https://api.lmnr.ai:8443"
OTEL_HEADERS="authorization=Bearer <project-api-key>"
只需 1 行代码,即可使用 OpenTelemetry 跨所有提供商即时记录您的 LLM 响应
litellm.callbacks = ["otel"]
从 OpenTelemetry 日志记录中隐藏消息和响应内容
从所有 OpenTelemetry 日志记录中隐藏消息和响应
设置 litellm.turn_off_message_logging=True
。这将阻止消息和响应被记录到 OpenTelemetry,但请求元数据仍会被记录。
从特定的 OpenTelemetry 日志记录中隐藏消息和响应
在通常用于文本补全或 Embedding 调用的元数据中,您可以设置特定的键来屏蔽此调用的消息和响应。
将 mask_input
设置为 True
将屏蔽此调用的输入日志记录。
将 mask_output
设置为 True
将屏蔽此调用的输出日志记录。
请注意,如果您正在继续一个现有的追踪,并且将 update_trace_keys
设置为包含 input
或 output
,同时设置了相应的 mask_input
或 mask_output
,那么该追踪中现有的输入和/或输出将被替换为已隐藏的消息。
支持
对于集成中的任何问题,您可以联系 OpenLLMetry 维护者,通过 Slack 或 电子邮件。
故障排除
追踪 LiteLLM Proxy 在失败请求中的用户/密钥/组织/团队信息
LiteLLM 发送 user_api_key_metadata
- 密钥哈希
- 密钥别名
- 组织 ID
- 用户 ID
- 团队 ID
对于成功和失败的请求
在追踪中点击 litellm_request
下方