跳至主要内容

DataDog

LiteLLM 支持将日志记录到以下 Datadog 集成中

Datadog 日志

功能详情
记录的内容StandardLoggingPayload
事件成功 + 失败
产品链接Datadog 日志

我们将使用 --config 来设置 litellm.callbacks = ["datadog"],这将把所有成功的 LLM 调用记录到 DataDog 中

第 1 步:创建一个 config.yaml 文件并设置 litellm_settings: success_callback

model_list:
- model_name: gpt-3.5-turbo
litellm_params:
model: gpt-3.5-turbo
litellm_settings:
callbacks: ["datadog"] # logs llm success + failure logs on datadog
service_callback: ["datadog"] # logs redis, postgres failures on datadog

Datadog LLM 可观测性

概述

功能详情
记录的内容StandardLoggingPayload
事件成功 + 失败
产品链接Datadog LLM 可观测性
model_list:
- model_name: gpt-3.5-turbo
litellm_params:
model: gpt-3.5-turbo
litellm_settings:
callbacks: ["datadog_llm_observability"] # logs llm success logs on datadog

第 2 步:设置 Datadog 所需的环境变量

直接 API

直接将日志发送到 Datadog API

DD_API_KEY="5f2d0f310***********" # your datadog API Key
DD_SITE="us5.datadoghq.com" # your datadog base url
DD_SOURCE="litellm_dev" # [OPTIONAL] your datadog source. use to differentiate dev vs. prod deployments

通过 DataDog Agent

通过本地 DataDog agent 发送日志(适用于容器化环境)

LITELLM_DD_AGENT_HOST="localhost" # hostname or IP of DataDog agent
LITELLM_DD_AGENT_PORT="10518" # [OPTIONAL] port of DataDog agent (default: 10518)
DD_API_KEY="5f2d0f310***********" # [OPTIONAL] your datadog API Key (Agent handles auth for Logs. REQUIRED for LLM Observability)
DD_SOURCE="litellm_dev" # [OPTIONAL] your datadog source

当设置了 LITELLM_DD_AGENT_HOST 时,日志会发送到 agent 而不是直接发送到 DataDog API。这适用于:

  • 在容器化环境中进行集中式日志传输
  • 减少来自多个服务的直接 API 调用
  • 利用 agent 端的处理和过滤功能

注意:我们使用 LITELLM_DD_AGENT_HOST 而不是 DD_AGENT_HOST,以避免与自动设置 DD_AGENT_HOST 用于 APM 追踪的 ddtrace 产生冲突。

[!IMPORTANT] Datadog LLM 可观测性:即使使用 Datadog Agent (LITELLM_DD_AGENT_HOST),DD_API_KEY 也是必须的。Agent 充当代理,但 API 密钥头对于 LLM 可观测性端点是强制要求的。

步骤 3:启动代理,发起测试请求

启动代理

litellm --config config.yaml --debug

测试请求

curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "what llm are you"
}
],
"metadata": {
"your-custom-metadata": "custom-field",
}
}'

Datadog 上的预期输出

脱敏消息和响应

本节介绍如何在 Datadog LLM 可观测性记录的负载中脱敏来自消息和响应的敏感数据。

启用脱敏后,实际的消息内容和响应文本将从 Datadog 日志中排除,同时保留元数据(如 token 计数、延迟和模型信息)。

第 1 步:在您的 config.yaml 中配置脱敏

config.yaml
model_list:
- model_name: gpt-3.5-turbo
litellm_params:
model: gpt-3.5-turbo
litellm_settings:
callbacks: ["datadog_llm_observability"] # logs llm success logs on datadog

# Params to apply only for "datadog_llm_observability" callback
datadog_llm_observability_params:
turn_off_message_logging: true # redacts input messages and output responses

第 2 步:发送聊天补全请求

curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "what llm are you"
}
]
}'

第 3 步:在 Datadog LLM 可观测性中验证脱敏情况

在 Datadog LLM 可观测性页面上,您应该看到输入消息和输出响应均已被脱敏,而元数据(token 计数、耗时、模型信息)保持可见。

Datadog 自定义指标

功能详情
记录的内容延迟指标,按状态码统计请求数
事件成功 + 失败
产品链接Datadog 指标

通过 /api/v2/series 端点将以下指标发布到 Datadog

指标类型描述
litellm.request.total_latencyGauge(仪表盘指标)端到端请求延迟(秒)
litellm.llm_api.latencyGauge(仪表盘指标)等待 LLM 提供商响应所花费的时间(秒)
litellm.llm_api.request_countCount(计数指标)请求计数,带有状态码标签

使用 total_latencyllm_api.latency,您可以推导出内部延迟 = total_latency - llm_api.latency

所有指标都包含以下标签:env, service, version, HOSTNAME, POD_NAME, provider, model_name, model_group, team, status_code

第 1 步:创建一个 config.yaml 文件

model_list:
- model_name: gpt-3.5-turbo
litellm_params:
model: gpt-3.5-turbo
litellm_settings:
success_callback: ["datadog_metrics"]
failure_callback: ["datadog_metrics"]

第 2 步:设置所需的环境变量

DD_API_KEY="your-api-key"
DD_SITE="us5.datadoghq.com" # your datadog site

第 3 步:启动代理并进行测试请求

litellm --config config.yaml
curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer sk-1234' \
--data '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "hello"}]
}'

第 4 步:在 Datadog Metrics Explorer 中查看指标

在 Datadog 中导航至 Metrics > Explorer,并搜索 litellm.request.total_latencylitellm.llm_api.latencylitellm.llm_api.request_count

Datadog 云成本管理

功能详情
记录的内容聚合的 LLM 成本(FOCUS 格式)
事件定期上传聚合的成本数据
产品链接Datadog 云成本管理

我们将使用 --config 来设置 litellm.callbacks = ["datadog_cost_management"]。这将定期将聚合的 LLM 成本数据上传到 Datadog。

第 1 步:创建一个 config.yaml 文件并设置 litellm_settings: success_callback

model_list:
- model_name: gpt-3.5-turbo
litellm_params:
model: gpt-3.5-turbo
litellm_settings:
callbacks: ["datadog_cost_management"]

第 2 步:设置所需的环境变量

DD_API_KEY="your-api-key"
DD_APP_KEY="your-app-key" # REQUIRED for Cost Management
DD_SITE="us5.datadoghq.com"

第 3 步:启动代理

litellm --config config.yaml

工作原理

  • LiteLLM 按提供商、模型、日期和标签在内存中聚合成本。
  • 需要 DD_APP_KEY 以用于自定义成本 API。
  • 成本会定期(刷新时)上传。

Datadog 追踪 (Tracing)

使用 ddtrace-run 在 litellm 代理上启用 Datadog 追踪

DD Tracer:将 USE_DDTRACE=true 传递给 docker run 命令。当 USE_DDTRACE=true 时,代理将执行 ddtrace-run litellm 作为 ENTRYPOINT,而不是仅运行 litellm

DD Profiler

USE_DDPROFILER=true 传递给 docker run 命令。当 USE_DDPROFILER=true 时,代理将激活 Datadog Profiler。这对于调试 CPU% 和内存使用量非常有用。

我们不建议在生产环境中使用 USE_DDPROFILER。仅建议将其用于调试 CPU% 和内存使用问题。

docker run \
-v $(pwd)/litellm_config.yaml:/app/config.yaml \
-e USE_DDTRACE=true \
-e USE_DDPROFILER=true \
-p 4000:4000 \
docker.litellm.ai/berriai/litellm:main-latest \
--config /app/config.yaml --detailed_debug

设置 DD 变量 (DD_SERVICE 等)

LiteLLM 支持自定义以下 Datadog 环境变量

环境变量描述默认值必需
DD_API_KEY用于身份验证的 Datadog API 密钥(直接 API 必需,agent 模式可选)条件性*
DD_SITE您的 Datadog 站点(例如 "us5.datadoghq.com")(直接 API 必需)条件性*
LITELLM_DD_AGENT_HOSTDataDog agent 的主机名或 IP(例如 "localhost")。设置后,日志将发送到 agent 而不是直接发送到 API❌ 无
LITELLM_DD_AGENT_PORT用于日志摄入的 DataDog agent 端口"10518"❌ 无
DD_ENV日志的环境标签(例如 "production", "staging")"unknown"❌ 无
DD_SERVICE日志的服务名称"litellm-server"❌ 无
DD_LLMOBS_ML_APPLLM 可观测性的默认 ml_app 名称(应用程序列)。可以通过 metadata.ml_app 对每个请求进行覆盖。回退到 DD_SERVICE❌ 无
DD_SOURCE日志的源名称"litellm"❌ 无
DD_VERSION日志的版本标签"unknown"❌ 无
HOSTNAME日志的主机名标签""❌ 无
POD_NAMEPod 名称标签(对 Kubernetes 部署非常有用)"unknown"❌ 无

* 使用直接 API(默认)时必需DD_API_KEYDD_SITE 为必需项
* 使用 DataDog Agent 时可选:设置 LITELLM_DD_AGENT_HOST 以使用 agent 模式;对于 Datadog 日志,不需要 DD_API_KEYDD_SITE。(注意:Datadog LLM 可观测性仍然需要 DD_API_KEY

自动标签

如果请求中提供了相关信息,LiteLLM 会自动将以下标签添加到您的 Datadog 日志和指标中

标签描述来源
team与 API 密钥关联的团队别名或 ID元数据中的 user_api_key_team_alias, team_alias, user_api_key_team_id, 或 team_id
request_tag请求中传递的自定义标签日志负载中的 request_tags
🚅
LiteLLM 企业版
SSO/SAML、审计日志、支出跟踪、多团队管理和护栏 —— 专为生产环境构建。
了解更多 →