Datadog 追踪
ddtrace 是一个 Datadog 应用性能监控(APM)库,它提供了一个集成来监控你的 LangChain 应用程序。
LangChain的ddtrace集成的主要特点:
- 追踪:捕获LangChain请求、参数、提示-完成,并帮助可视化LangChain操作。
- 指标:捕获LangChain请求的延迟、错误和令牌/成本使用情况(适用于OpenAI LLMs和聊天模型)。
- 日志:存储每次LangChain操作的提示完成数据。
- 仪表板:将指标、日志和跟踪数据结合到一个平面上,以监控LangChain请求。
- 监控器:在LangChain请求延迟或错误率激增时提供警报。
注意:ddtrace LangChain 集成目前为LLMs、聊天模型、文本嵌入模型、链和向量存储提供跟踪功能。
安装与设置
- 在您的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
注意: 如果代理使用的是非默认的主机名或端口,请确保也设置 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
# Note: be sure to configure the integration before calling ``patch()``!
# e.g. config.langchain["logs_enabled"] = True
patch(langchain=True)
# to trace synchronous HTTP requests
# patch(langchain=True, requests=True)
# to trace asynchronous HTTP requests (to the OpenAI library)
# patch(langchain=True, aiohttp=True)
# to include underlying OpenAI spans from the OpenAI integration
# patch(langchain=True, openai=True)patch_all
查看APM Python库文档以获取更高级的用法。
配置
查看APM Python库文档以获取所有可用的配置选项。
日志提示与完成采样
要启用日志提示和完成采样,请设置环境变量DD_LANGCHAIN_LOGS_ENABLED=1
。默认情况下,10%的跟踪请求将发出包含提示和完成的日志。
要调整日志采样率,请参阅APM库文档。
注意: 日志提交需要在运行ddtrace-run
时指定DD_API_KEY
。