Datadog LLM Observability 시작하기

Datadog LLM Observability 시작하기 (Quickstart)

LLM 앱에 옵저버빌리티를 붙이는 첫 단계는 "내 앱에 계측(instrumentation)을 심어서 트레이스를 실제로 만들어 보기"예요. Datadog의 Quickstart는 Python·Node.js·Java 앱에 Agent Observability SDK를 붙여서 첫 트레이스를 확인하는 순서를 보여줘요. 여기서는 SDK 설치부터 기본 환경 변수, 그리고 "Hello World" 수준의 예제 앱까지 따라 해볼게요.

출처: Datadog LLM Observability 시작하기

사전 준비

Datadog 에이전트(Agent)가 실행 중이 아니라면 Datadog API key가 필요해요. API key는 Datadog의 Organization Settings > API keys에서 찾을 수 있어요.

선택 사항으로, 코딩 에이전트(Coding Agent)에 다음 프롬프트를 붙여넣어 계측을 자동으로 시킬 수도 있어요. 환경 변수는 아래 값을 넣어 주면 돼요.

DD_SITE=<YOUR_DATADOG_SITE>
DD_API_KEY=<your-dd-api-key>

프롬프트 안에 API key를 넣는 건 선택 사항이라, 꼭 넣지 않아도 돼요.

수동 설정 (Manual Setup)

Python

  1. SDK 설치:
    pip install ddtrace
    
  2. 시작 명령 앞에 ddtrace-run을 붙여요:
    DD_LLMOBS_ENABLED=1 \
    DD_LLMOBS_ML_APP=quickstart-app \
    DD_SITE=<YOUR_DD_SITE> \
    DD_API_KEY=<YOUR_DATADOG_API_KEY> \
    ddtrace-run <your application command>
    

주의할 점이 하나 있어요. 자동 계측은 지원되는 프레임워크를 쓸 때만 동작해요. Python에서는 OpenAI, LangChain, LangGraph, Bedrock, Anthropic 같은 프레임워크가 자동 추적 대상이에요. 목록에 없는 프레임워크면 수동 계측으로 직접 LLM 호출을 감싸 주면 돼요.

Node.js

  1. SDK 설치:
    npm install dd-trace
    
  2. 앱 진입점에서 dd-trace를 첫 번째 의존성으로 임포트·초기화하고 NODE_OPTIONS="--import dd-trace/initialize.mjs"로 시작해요:
    DD_LLMOBS_ENABLED=1 \
    DD_LLMOBS_ML_APP=quickstart-app \
    DD_SITE=<YOUR_DD_SITE> \
    DD_API_KEY=<YOUR_DATADOG_API_KEY> \
    NODE_OPTIONS="--import dd-trace/initialize.mjs" <your application command>
    
    Node.js 자동 계측은 OpenAI, LangChain, Vercel AI SDK, Bedrock, Anthropic 등을 지원해요. Next.js를 쓴다면 전용 가이드(Next.js Guide)를 참고하는 게 좋아요.

Java

  1. 에이전트 JAR 다운로드:
    wget -O dd-java-agent.jar 'https://dtdg.co/latest-java-tracer'
    
  2. 시작 명령에 -javaagent JVM 인자를 추가해요:
    java -javaagent:/path/to/dd-java-agent.jar \
    -Ddd.llmobs.enabled=true \
    -Ddd.llmobs.ml.app=quickstart-app \
    -Ddd.site=<YOUR_DD_SITE> \
    -Ddd.api.key=<YOUR_DATADOG_API_KEY> \
    -jar path/to/your/app.jar
    
    Java 자동 계측은 OpenAI, Azure OpenAI를 지원해요. Bedrock이나 LangChain4j 같은 라이브러리는 수동 계측을 써야 해요.

기타 언어 / HTTP API

Python·Node.js·Java 외 언어라면 SDK 없이 스팬(spans)을 Datadog으로 직접 보내는 HTTP API를 쓸 수 있어요. 앱이 OpenTelemetry GenAI semantic convention을 따르는 스팬을 만든다면 OpenTelemetry 계측을 보는 게 낫겠죠.

트레이스 확인

앱에 LLM 호출을 일으키는 요청을 보내고, Datadog의 Agent Observability 페이지 Traces 탭에서 트레이스를 확인해요. 트레이스가 안 보일 때는 다음을 점검해요.

  • 내 라이브러리가 자동 계측 대상인지 (지원 목록 확인)
  • 수동 계측으로 LLM 호출을 스팬으로 감쌌는지
  • HTTP API 또는 OpenTelemetry 계측을 사용했는지

다음 단계

트레이스가 들어오기 시작하면 평가(evaluations)를 설정해 앱의 효과성을 평가하고, 수동 계측을 추가해 자동 계측이 못 잡는 데이터까지 추출할 수 있어요.

더 알아보기