Datadog
Datadog
LiteLLM은 다음 Datadog 통합으로 로깅을 지원해요:
datadog— Datadog Logsdatadog_llm_observability— Datadog LLM Observabilitydatadog_metrics— Datadog Custom Metricsdatadog_cost_management— Datadog Cloud Cost Managementddtrace-run— Datadog Tracing
출처: 문서
본문
Datadog Logs
| 기능 | 세부 |
|---|---|
| 로깅되는 것 | StandardLoggingPayload |
| 이벤트 | 성공 + 실패 |
| 제품 링크 | Datadog Logs |
--config로 litellm.callbacks = ["datadog"]을 설정하면 모든 성공 LLM 호출이 DataDog에 로깅돼요.
1단계: config.yaml 파일을 만들고 litellm_settings: success_callback 설정
model_list:
- model_name: gpt-5.6-luna
litellm_params:
model: gpt-5.6-luna
litellm_settings:
callbacks: ["datadog"] # logs llm success + failure logs on datadog
service_callback: ["datadog"] # logs redis, postgres failures on datadog
Datadog LLM Observability
개요
| 기능 | 세부 |
|---|---|
| 로깅되는 것 | StandardLoggingPayload |
| 이벤트 | 성공 + 실패 |
| 제품 링크 | Datadog LLM Observability |
model_list:
- model_name: gpt-5.6-luna
litellm_params:
model: gpt-5.6-luna
litellm_settings:
callbacks: ["datadog_llm_observability"] # logs llm success logs on datadog
2단계: datadog용 필수 환경 변수 설정
직접 API(Direct 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 경유(Via DataDog Agent): 로컬 DataDog 에이전트로 로그 전송(컨테이너 환경에 유용):
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를 설정하면 로그가 Datadog API 대신 에이전트로 전송돼요. 이는 다음에 유용해요:
- 컨테이너 환경에서 중앙 집중식 로그 전송
- 여러 서비스의 직접 API 호출 감소
- 에이전트 측 처리·필터링 사용
참고: ddtrace가 APM 추적용으로 DD_AGENT_HOST를 자동 설정하므로 충돌을 피하기 위해 DD_AGENT_HOST 대신 LITELLM_DD_AGENT_HOST를 사용해요.
info — Datadog LLM Observability: DataDog Agent(
LITELLM_DD_AGENT_HOST)를 사용할 때도DD_API_KEY는 필수예요. 에이전트는 프록시 역할을 하지만 LLM Observability 엔드포인트에는 API 키 헤더가 필수예요.
3단계: 프록시를 시작하고 테스트 요청 보내기
litellm --config config.yaml --debug
curl --location 'http://0.0.0.0:4000/chat/completions' \
--header 'Content-Type: application/json' \
--data '{
"model": "gpt-5.6-luna",
"messages": [
{
"role": "user",
"content": "what llm are you"
}
],
"metadata": {
"your-custom-metadata": "custom-field",
}
}'
메시지·응답 마스킹 (Redacting Messages and Responses)
이 섹션은 Datadog LLM Observability의 로깅 페이로드에서 메시지와 응답의 민감 데이터를 마스킹하는 방법을 다뤄요.
마스킹을 활성화하면 실제 메시지 내용과 응답 텍스트가 Datadog 로그에서 제외되면서 토큰 수, 지연 시간, 모델 정보 같은 메타데이터는 보존돼요.
1단계: config.yaml에서 마스킹 구성
config.yaml:
model_list:
- model_name: gpt-5.6-luna
litellm_params:
model: gpt-5.6-luna
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-5.6-luna",
"messages": [
{
"role": "user",
"content": "what llm are you"
}
]
}'
3단계: Datadog LLM Observability에서 마스킹 확인
Datadog LLM Observability 페이지에서 입력 메시지와 출력 응답이 모두 마스킹되고, 메타데이터(토큰 수, 타이밍, 모델 정보)는 계속 보이는 것을 확인할 수 있어요.
Datadog Custom Metrics
| 기능 | 세부 |
|---|---|
| 로깅되는 것 | 지연 시간 메트릭, 상태 코드별 요청 수 |
| 이벤트 | 성공 + 실패 |
| 제품 링크 | Datadog Metrics |
/api/v2/series 엔드포인트로 다음 메트릭을 Datadog에 게시해요:
| 메트릭 | 타입 | 설명 |
|---|---|---|
litellm.request.total_latency |
Gauge | 종단 간 요청 지연 시간(초) |
litellm.llm_api.latency |
Gauge | LLM 프로바이더 응답을 기다리는 데 걸린 시간(초) |
litellm.llm_api.request_count |
Count | 상태 코드로 태깅된 요청 수 |
total_latency와 llm_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-5.6-luna
litellm_params:
model: gpt-5.6-luna
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 ***" \
--data '{
"model": "gpt-5.6-luna",
"messages": [{"role": "user", "content": "hello"}]
}'
4단계: Datadog Metrics Explorer에서 메트릭 보기
Datadog에서 Metrics > Explorer로 이동해 litellm.request.total_latency, litellm.llm_api.latency, litellm.llm_api.request_count를 검색해 보세요.
Datadog Cloud Cost Management
| 기능 | 세부 |
|---|---|
| 로깅되는 것 | 집계된 LLM 비용(FOCUS 형식) |
| 이벤트 | 집계 비용 데이터의 주기적 업로드 |
| 제품 링크 | Datadog Cloud Cost Management |
--config로 litellm.callbacks = ["datadog_cost_management"]을 설정하면 집계된 LLM 비용 데이터를 Datadog에 주기적으로 업로드해요.
1단계: config.yaml 파일을 만들고 litellm_settings: success_callback 설정
model_list:
- model_name: gpt-5.6-luna
litellm_params:
model: gpt-5.6-luna
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
동작 방식(How it works)
- LiteLLM은 비용을 프로바이더·모델·날짜·태그별로 메모리에서 집계해요.
- Custom Costs API에는
DD_APP_KEY가 필요해요. - 비용은 주기적으로 업로드(플러시)돼요.
Datadog Tracing
ddtrace-run을 사용해 litellm 프록시에서 Datadog Tracing을 활성화해요.
DD Tracer: docker run 명령에 USE_DDTRACE=true를 전달해 주세요. USE_DDTRACE=true이면 프록시가 litellm 대신 ddtrace-run litellm을 ENTRYPOINT로 실행해요.
DD Profiler:
docker run 명령에 USE_DDPROFILER=true를 전달해 주세요. 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:latest \
--config /app/config.yaml --detailed_debug
DD 변수 설정 (DD_SERVICE 등)
LiteLLM은 다음 Datadog 환경 변수 커스터마이징을 지원해요.
| 환경 변수 | 설명 | 기본값 | 필수 |
|---|---|---|---|
DD_API_KEY |
인증용 Datadog API 키(직접 API 필수, 에이전트는 선택) | 없음 | 조건부* |
DD_SITE |
Datadog 사이트(예: "us5.datadoghq.com")(직접 API 필수) | 없음 | 조건부* |
LITELLM_DD_AGENT_HOST |
DataDog 에이전트의 호스트명 또는 IP(예: "localhost"). 설정 시 로그가 직접 API 대신 에이전트로 전송 | 없음 | ❌ 아니오 |
LITELLM_DD_AGENT_PORT |
로그 수집용 DataDog 에이전트 포트 | "10518" | ❌ 아니오 |
DD_ENV |
로그용 환경 태그(예: "production", "staging") | "unknown" | ❌ 아니오 |
DD_SERVICE |
로그용 서비스 이름 | "litellm-server" | ❌ 아니오 |
DD_LLMOBS_ML_APP |
LLM Observability용 기본 ml_app 이름(Application 열). metadata.ml_app로 요청별 오버라이드 가능 |
DD_SERVICE로 폴백 |
❌ 아니오 |
DD_SOURCE |
로그용 소스 이름 | "litellm" | ❌ 아니오 |
DD_VERSION |
로그용 버전 태그 | "unknown" | ❌ 아니오 |
HOSTNAME |
로그용 호스트명 태그 | "" | ❌ 아니오 |
POD_NAME |
Pod 이름 태그(Kubernetes 배포에 유용) | "unknown" | ❌ 아니오 |
- 직접 API 사용 시(기본값) 필수:
DD_API_KEY와DD_SITE가 필요해요. - DataDog Agent 사용 시 선택: 에이전트 모드를 쓰려면
LITELLM_DD_AGENT_HOST를 설정하세요. Datadog Logs에는DD_API_KEY와DD_SITE가 필요하지 않아요. (참고: Datadog LLM Observability에는DD_API_KEY가 필수입니다).
자동 태그 (Automatic Tags)
LiteLLM은 요청에 정보가 있으면 다음 태그를 Datadog 로그·메트릭에 자동으로 추가해요.
| 태그 | 설명 | 소스 |
|---|---|---|
team |
API 키와 연결된 팀 별칭 또는 ID | metadata의 user_api_key_team_alias, team_alias, user_api_key_team_id 또는 team_id |
request_tag |
요청에 전달된 사용자 지정 태그 | 로깅 페이로드의 request_tags |
더 알아보기 (Learn more)
- Datadog LLM Observability — LLM 성능 모니터링
- Datadog Metrics — 커스텀 메트릭