引言
在现代应用程序开发中,监控和性能优化成为确保应用程序高效运行的关键要素。Datadog 的 trace (ddtrace)集成提供了强大的工具来监控你的 LangChain 应用程序。这篇文章将带你逐步了解如何使用 ddtrace 监控 LangChain 应用程序,包括设置、代码示例、潜在问题解决方法,以及进一步学习的资源。
主要内容
ddtrace 的关键功能
Datadog 的 ddtrace 为 LangChain 提供了全面的监控功能,包括:
- Traces:捕获 LangChain 的请求、参数、提示完成,帮助可视化 LangChain 的操作。
- Metrics:记录请求延迟、错误和令牌/成本使用情况(特别为 OpenAI LLMs 和聊天模型设计)。
- Logs:存储每个 LangChain 操作的提示完成数据。
- Dashboard:结合指标、日志和跟踪数据,形成一个单一平面以监视 LangChain 请求。
- Monitors:在 LangChain 请求延迟或错误率突增时提供警报。
安装和设置
首先,你需要确保你的 Datadog Agent 启用了 APM 和 StatsD,并持有一个有效的 Datadog API key。以下是在 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 集成,可以在你的 LangChain Python 应用命令前加上 ddtrace-run:
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。
代码示例
以下是如何在代码中以编程方式启用 ddtrace 的示例:
from ddtrace import config, patch
# 请在调用``patch()``之前配置集成
# 例如 config.langchain["logs_enabled"] = True
patch(langchain=True)
# 使用API代理服务提高访问稳定性
# trace同步 HTTP 请求
# patch(langchain=True, requests=True)
# trace异步 HTTP 请求 (到 OpenAI 库)
# patch(langchain=True, aiohttp=True)
# 包含来自 OpenAI 集成的底层 OpenAI span
# patch(langchain=True, openai=True)
常见问题和解决方案
问题:无法接收到 Datadog Agent 的数据
解决方案:
- 确保 Datadog Agent 运行正常,并且端口配置正确。
- 检查 API key 是否正确设置。
- 检查网络配置,特别是在某些地区,考虑使用 API 代理服务。
问题:日志数据不完整
解决方案:
- 确保已设置
DD_LANGCHAIN_LOGS_ENABLED=1环境变量。 - 检查日志采样率配置。
总结和进一步学习资源
通过本文的讲解,你应该能够成功地在 LangChain 应用程序中使用 Datadog Trace 进行监控。为了更深入的理解,可以参考官方文档 APM Python library documentation 提供的高级用法。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---