experimental_telemetry 옵션을 통해 OpenTelemetry를 기본적으로 지원합니다.
이 가이드에서는 Weave UI에서 AI SDK Call을 관찰하고 디버그할 수 있도록 Vercel AI SDK의 트레이스를 Weave로 전송하도록 OTel을 설정하는 방법을 설명합니다. AI SDK는 Next.js와 함께 사용하거나 독립형 Node.js 애플리케이션으로 사용할 수 있습니다. 이 가이드는 기존 앱에 트레이싱을 추가하려는 Vercel AI SDK 기반 AI 애플리케이션 개발자를 대상으로 합니다.
Weave에서 OTel 트레이싱에 대한 자세한 내용은 Send OTel traces to Weave를 참조하세요.
사전 요구 사항
-
다음 Vercel 및 OTel 라이브러리를 설치하세요.
-
다음 환경 변수를 설정하세요.
W&B API 키는 User Settings에서 확인할 수 있습니다.
Next.js용 OTel 트레이싱 설정
계측 설정
instrumentation.ts 파일을 사용합니다. 이 파일은 서버가 시작될 때 한 번 실행되며, AI SDK가 사용하는 트레이서 프로바이더를 구성합니다.
Weave를 Vercel의 OTel 기능과 통합하려면 프로젝트 루트에 instrumentation.ts 파일을 만들고 다음 코드를 추가하세요. 이때 resourceFromAttributes() 함수의 팀 이름과 프로젝트 이름을 환경에 맞게 업데이트하세요:
instrumentation.ts
함수에서 telemetry 설정하기
experimental_telemetry 옵션을 사용해 OTel spans를 내보내세요:
route.ts
generateText Call은 Weave로 내보내지는 OTel span을 생성합니다. 이제 Next.js 앱이 Vercel AI SDK 트레이스를 Weave로 전송하도록 설정되었습니다.
Node.js용 OTel 트레이싱 구성
test-app.ts
BatchSpanProcessor는 span을 비동기적으로 플러시합니다. 간단히 말해, 독립 실행형 스크립트, 서버리스 함수, CLI 도구처럼 수명이 짧은 프로세스에서는 프로세스가 종료되기 전에 provider.shutdown()을 호출해 모든 span이 Weave로 전송되도록 하세요. 반면 장시간 실행되는 서버(예: instrumentation.ts를 통해 시작된 Next.js dev 서버)에서는 이렇게 할 필요가 없습니다.