Langtrace
Langtrace
Langtrace는 LLM 애플리케이션을 위한 오픈소스 관측성 및 평가 도구예요(langtrace.ai). LiteLLM 스팬을 OpenTelemetry Collector를 거쳐 Langtrace로 보내는 방법을 알려드릴게요.
출처: 문서
본문
사전 요구사항 (Pre-Requisites)
uv add litellm
Langtrace는 사용자 지정 경로(/api/trace)에서 x-api-key 헤더와 함께 JSON 인코딩 OTLP를 수집하는 반면, litellm은 protobuf를 /v1/traces로 보내요. 따라서 Langtrace가 litellm의 스팬을 직접 받을 수 없어요. 둘 사이에 OpenTelemetry Collector를 실행하세요. litellm은 컬렉터로 내보내고, 컬렉터는 스팬을 JSON으로 재인코딩해 Langtrace로 전달해요.
langtrace 콜백은 Langtrace의 속성 스키마를 적용하고, 컬렉터가 전달만 담당해요. 그래서 프리셋은 자체 자격 증명을 읽지 않고, LANGTRACE_API_KEY도 프록시가 아니라 컬렉터 환경에 존재해요.
빠른 시작 (Quick Start)
SDK:
import litellm
import os
os.environ["LITELLM_OTEL_V2"] = "true"
os.environ["OTEL_ENDPOINT"] = "http://otel-collector:4318"
# LLM API Keys
os.environ["OPENAI_API_KEY"] = ""
# set langtrace as a callback, litellm will send the data to langtrace
litellm.callbacks = ["langtrace"]
# openai call
response = litellm.completion(
model="gpt-5.6-terra",
messages=[
{"role": "user", "content": "Hi 👋 - i'm openai"}
]
)
LiteLLM Proxy:
- config.yaml 설정
model_list:
- model_name: gpt-5.6-terra
litellm_params:
model: openai/gpt-5.6-terra
api_key: os.environ/OPENAI_API_KEY
litellm_settings:
callbacks: ["langtrace"]
- litellm을 컬렉터에 연결
LITELLM_OTEL_V2=true
OTEL_ENDPOINT="http://otel-collector:4318"
- 컬렉터 구성 —
otel-collector-config.yaml,LANGTRACE_API_KEY는 컬렉터 환경에 설정:
receivers:
otlp:
protocols:
http:
endpoint: 0.0.0.0:4318
exporters:
otlphttp/langtrace:
encoding: json
compression: none
traces_endpoint: https://app.langtrace.ai/api/trace
headers:
x-api-key: ${env:...KEY}
Content-Type: application/json
service:
pipelines:
traces:
receivers: [otlp]
exporters: [otlphttp/langtrace]
- LiteLLM 프록시 시작
litellm --config /path/to/config.yaml
- 테스트해 보세요!
curl -L -X POST 'http://0.0.0.0:4000/v1/chat/completions' \
-H 'Content-Type: application/json' \
-H "Authorization: Bearer ***" \
-d '{
"model": "gpt-5.6-terra",
"messages": [
{
"role": "user",
"content": "Hey, how are you?"
}
]
}'
Langtrace가 렌더링하는 것 (What Langtrace renders)
Langtrace UI를 열어 보세요. 스팬은 표준 gen_ai.* 키와 함께 langtrace.* 및 llm.* 키를 들고 컬렉터를 통해 흘러가요.
langtrace 매퍼는 프로바이더용 langtrace.service.name, 요청·응답 식별자(llm.model, gen_ai.response.model, gen_ai.response_id, gen_ai.system_fingerprint), 요청 파라미터(llm.temperature, top_p, top_k, max_tokens, frequency_penalty, presence_penalty), llm.stream 플래그, llm.token.counts.* 사용량 분할, 그리고 콘텐츠 캡처가 켜져 있을 때 llm.prompts / llm.completions를 추가해요. 전체 속성 표는 full attribute table을 참고해 주세요.
전체 OpenTelemetry 참조 (Full OpenTelemetry reference)
이 페이지는 Langtrace 전용 설정을 다뤄요. 스팬 속성, 프롬프트·응답 캡처, 메트릭, 분산 추적, 추적되는 라우트에 대한 자세한 내용은 OpenTelemetry v2 가이드를 참고해 주세요.
지원 및 창업자와 소통 (Support & Talk to Founders)
- Schedule Demo 👋
- Community Discord 💭
- Our emails ✉️ [email protected] / [email protected]
더 알아보기 (Learn more)
- Langtrace — LLM 애플리케이션을 위한 오픈소스 관측성·평가
- OpenTelemetry v2 가이드 — 스팬 속성·메트릭·분산 추적