Datadog Tracing
ddtrace 是一个 Datadog 应用程序性能监控(APM)库,它提供了一个集成来监控您的 LangChain 应用程序。
ddtrace for LangChain 集成的关键特性:
- Traces:捕获 LangChain 请求、参数、prompt-completion,并帮助可视化 LangChain 操作。
- Metrics:捕获 LangChain 请求延迟、错误以及 token/成本使用情况(适用于 OpenAI LLM 和聊天模型)。
- Logs:为每个 LangChain 操作存储 prompt-completion 数据。
- Dashboard:将指标、日志和 trace 数据合并到一个视图中,以监控 LangChain 请求。
- Monitors:在 LangChain 请求延迟或错误 率激增时提供警报。
注意:ddtrace LangChain 集成目前为 LLM、聊天模型、Text Embedding Models、Chains 和 Vectorstores 提供跟踪。
安装和设置
- 在您的 Datadog Agent 中启用 APM 和 StatsD,并设置 Datadog API 密钥。例如,在 Docker 中:
docker run -d --cgroupns host \
--pid host \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v /proc/:/host/proc/:ro \
-v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \
-e DD_API_KEY=<DATADOG_API_KEY> \
-p 127.0.0.1:8126:8126/tcp \
-p 127.0.0.1:8125:8125/udp \
-e DD_DOGSTATSD_NON_LOCAL_TRAFFIC=true \
-e DD_APM_ENABLED=true \
gcr.io/datadoghq/agent:latest
- 安装 Datadog APM Python 库。
pip install ddtrace>=1.17
- 可以通过在 LangChain Python 应用 程序命令前加上
ddtrace-run来自动启用 LangChain 集成:
DD_SERVICE="my-service" DD_ENV="staging" DD_API_KEY=<DATADOG_API_KEY> ddtrace-run python <your-app>.py
注意:如果 Agent 使用非默认主机名或端口,请务必同时设置 DD_AGENT_HOST、DD_TRACE_AGENT_PORT 或 DD_DOGSTATSD_PORT。
此外,可以通过在应用程序中首次导入 langchain 前添加 patch_all() 或 patch(langchain=True) 来以编程方式启用 LangChain 集成。
请注意,使用 ddtrace-run 或 patch_all() 也会启用 requests 和 aiohttp 集成(用于跟踪到 LLM 提供商的 HTTP 请求),以及 openai 集成(用于跟踪到 OpenAI 库的请求)。
from ddtrace import config, patch
# 注意:在调用 ``patch()`` 之前,请务必配置集成!
# 例如:config.langchain["logs_enabled"] = True
patch(langchain=True)
# 跟踪同步 HTTP 请求
# patch(langchain=True, requests=True)
# 跟踪异步 HTTP 请求(到 OpenAI 库)
# patch(langchain=True, aiohttp=True)
# 包含来自 OpenAI 集成的底层 OpenAI spans
# patch(langchain=True, openai=True)patch_all
有关更高级的用法,请参阅 APM Python 库文档。
配置
有关所有可用的配置选项,请参阅 APM Python 库文档。
Log Prompt & Completion Sampling
要启用 log prompt 和 completion 的采样,请设置 DD_LANGCHAIN_LOGS_ENABLED=1 环境变量。默认情况下,10% 的跟踪请求将发出包含 prompt 和 completion 的日志。
要调整日志采样率,请参阅 APM 库文档。
注意:日志提交要求在运行 ddtrace-run 时指定 DD_API_KEY。
故障排除
需要帮助?在 ddtrace 上创建一个问题或联系 Datadog 支持。