이 기능은 베타 버전입니다. 향후 릴리스에서 API가 변경될 수 있습니다.
Collector-Proxy 사용 시기
다음과 같은 경우에 Collector-Proxy가 특히 유용합니다:- 애플리케이션의 여러 인스턴스를 병렬로 실행하고 있으며 추적 데이터를 효율적으로 집계해야 하는 경우
- LangSmith에 직접 OTEL API를 호출하는 것보다 더 효율적인 추적이 필요한 경우 (collector가 일괄 처리 및 압축을 최적화함)
- 네이티브 LangSmith SDK가 없는 언어를 사용하는 경우
주요 기능
- 효율적인 데이터 전송 여러 스팬을 더 적은 수의 대용량 업로드로 일괄 처리합니다.
- 압축 zstd를 사용하여 페이로드 크기를 최소화합니다.
- OTLP 지원 HTTP POST를 통해 OTLP JSON 및 Protobuf를 수용합니다.
- 의미론적 변환 GenAI/OpenInference 규칙을 LangSmith Run 모델로 매핑합니다.
- 유연한 일괄 처리 스팬 개수 또는 시간 간격에 따라 플러시합니다.
구성
환경 변수를 통해 구성합니다:| 변수명 | 설명 | 기본값 |
|---|---|---|
HTTP_PORT | 프록시 서버를 실행할 포트 | 4318 |
LANGSMITH_ENDPOINT | LangSmith 백엔드 URL | https://api.smith.langchain.com |
LANGSMITH_API_KEY | LangSmith API 키 | 필수 (환경 변수 또는 헤더) |
LANGSMITH_PROJECT | 기본 추적 프로젝트 | 지정되지 않은 경우 기본 프로젝트 |
BATCH_SIZE | 업로드 배치당 스팬 수 | 100 |
FLUSH_INTERVAL_MS | 플러시 간격(밀리초) | 1000 |
MAX_BUFFER_BYTES | 최대 비압축 버퍼 크기 | 10485760 (10 MB) |
MAX_BODY_BYTES | 최대 수신 요청 본문 크기 | 209715200 (200 MB) |
MAX_RETRIES | 업로드 실패 시 재시도 횟수 | 3 |
RETRY_BACKOFF_MS | 초기 백오프 시간(밀리초) | 100 |
프로젝트 구성
Collector-Proxy는 다음 우선순위로 LangSmith 프로젝트 구성을 지원합니다:- 요청 헤더에 프로젝트가 지정된 경우 (
Langsmith-Project), 해당 프로젝트가 사용됩니다 - 헤더에 프로젝트가 지정되지 않은 경우,
LANGSMITH_PROJECT환경 변수에 설정된 프로젝트를 사용합니다 - 둘 다 설정되지 않은 경우,
default프로젝트에 추적합니다.
인증
API 키는 다음 중 한 가지 방법으로 제공할 수 있습니다:- 환경 변수로 제공 (
LANGSMITH_API_KEY) - 요청 헤더에 포함 (
X-API-Key)
배포 (Docker)
Docker를 사용하여 Collector-Proxy를 배포할 수 있습니다:-
이미지 빌드
-
컨테이너 실행
사용법
모든 OTLP 호환 클라이언트 또는 OpenTelemetry Collector 익스포터를 다음 주소로 지정합니다:상태 확인 및 스케일링
- Liveness:
GET /live→ 200 - Readiness:
GET /ready→ 200
수평 스케일링
전체 추적이 올바르게 일괄 처리되도록 하려면, 동일한 trace ID를 가진 스팬을 동일한 인스턴스로 라우팅하십시오 (예: 일관된 해싱을 통해).Fork 및 확장
GitHub의 Collector-Proxy 저장소를 포크하고 자체 컨버터를 구현하십시오:internal/translator/otel_converter.go에서 사용자 정의GenAiConverter를 생성하거나 기존 컨버터를 수정합니다internal/translator/translator.go에 사용자 정의 컨버터를 등록합니다
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.