코드 로컬 계측

코드 로컬 계측 (Instrumenting your code locally)

AutoGen 앱이 실제로 뭘 하는지 눈으로 확인하고 싶을 때가 있어요. AutoGen은 OpenTelemetry로 코드를 계측(instrument)해서, 코드에서 트레이스와 로그를 수집해 원하는 백엔드로 보내는 것을 지원해요. 디버깅할 때는 Aspire나 Jaeger 같은 로컬 백엔드를 쓸 수 있어요. 이 가이드는 Aspire를 예로 듭니다.

출처: Instrumentating your code locally — AutoGen 공식 문서

Aspire 설정

Aspire를 standalone 모드로 설정하려면 공식 안내를 따라 해요. 이 과정에는 머신에 Docker가 설치되어 있어야 해요.

코드 계측

대시보드가 준비됐으면, 이제 트레이스와 로그를 대시보드로 보내는 일만 남았어요. Telemetry Guide의 절차를 따라 OpenTelemetry SDK와 exporter를 설정해요.

Aspire 대시보드를 띄운 상태에서 코드를 계측하면, 코드가 실행되면서 트레이스와 로그가 대시보드에 나타나는 걸 볼 수 있어요.

OpenAI로 LLM 호출 관찰하기

OpenAI 패키지를 쓰고 있다면, 해당 라이브러리에 OpenTelemetry를 설정해서 LLM 호출을 관찰할 수 있어요. 여기서는 opentelemetry-instrumentation-openai를 사용해요.

패키지 설치:

pip install opentelemetry-instrumentation-openai

계측 활성화:

from opentelemetry.instrumentation.openai import OpenAIInstrumentor

OpenAIInstrumentor().instrument()

이제 코드를 실행하면 LLM 호출을 포함한 트레이스가 텔레메트리 백엔드(여기서는 Aspire)로 전송돼요. 대시보드에서 에이전트가 언제, 어떤 LLM을, 얼마나 호출했는지 한눈에 볼 수 있죠. 로컬에서 개발하다 보면 "에이전트가 왜 이렇게 오래 걸리지?" 같은 의문이 드는데, 이 계측 덕분에 어떤 호출이 병목인지 직접 확인할 수 있어요.

더 알아보기 (Learn more)