Datadog LLM Observability 시작하기
Datadog LLM Observability 시작하기 (Quickstart)
LLM 앱에 옵저버빌리티를 붙이는 첫 단계는 "내 앱에 계측(instrumentation)을 심어서 트레이스를 실제로 만들어 보기"예요. Datadog의 Quickstart는 Python·Node.js·Java 앱에 Agent Observability SDK를 붙여서 첫 트레이스를 확인하는 순서를 보여줘요. 여기서는 SDK 설치부터 기본 환경 변수, 그리고 "Hello World" 수준의 예제 앱까지 따라 해볼게요.
사전 준비
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
- SDK 설치:
pip install ddtrace - 시작 명령 앞에
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
- SDK 설치:
npm install dd-trace - 앱 진입점에서
dd-trace를 첫 번째 의존성으로 임포트·초기화하고NODE_OPTIONS="--import dd-trace/initialize.mjs"로 시작해요:
Node.js 자동 계측은 OpenAI, LangChain, Vercel AI SDK, Bedrock, Anthropic 등을 지원해요. Next.js를 쓴다면 전용 가이드(Next.js Guide)를 참고하는 게 좋아요.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>
Java
- 에이전트 JAR 다운로드:
wget -O dd-java-agent.jar 'https://dtdg.co/latest-java-tracer' - 시작 명령에
-javaagentJVM 인자를 추가해요:
Java 자동 계측은 OpenAI, Azure OpenAI를 지원해요. Bedrock이나 LangChain4j 같은 라이브러리는 수동 계측을 써야 해요.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
기타 언어 / 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)를 설정해 앱의 효과성을 평가하고, 수동 계측을 추가해 자동 계측이 못 잡는 데이터까지 추출할 수 있어요.