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