대용량 애플리케이션을 운영할 때는 모든 트레이스를 LangSmith에 기록하지 않을 수도 있습니다. 샘플링 비율을 사용하면 로그에 기록할 트레이스의 비율을 제어하여 관찰 가능성 요구 사항과 비용 고려 사항 간의 균형을 맞출 수 있습니다.
전역 샘플링 비율 설정
이 섹션은 LangSmith API로 직접 로깅하는 사용자가 아닌 LangSmith SDK 또는 LangChain을 사용하는 사용자에게 해당됩니다.
기본적으로 모든 트레이스는 LangSmith에 기록됩니다. LangSmith에 기록되는 트레이스 수를 다운샘플링하려면 LANGSMITH_TRACING_SAMPLING_RATE 환경 변수를 0(트레이스 없음)과 1(모든 트레이스) 사이의 부동 소수점 값으로 설정하세요. 예를 들어, 다음 환경 변수를 설정하면 트레이스의 75%가 기록됩니다.
export LANGSMITH_TRACING_SAMPLING_RATE=0.75
이 설정은 traceable 데코레이터와 RunTree 객체에 적용됩니다.
클라이언트별로 다른 샘플링 비율 설정
특정 Client 인스턴스에 샘플링 비율을 설정하고 tracing_context 컨텍스트 매니저를 사용할 수도 있습니다:
from langsmith import Client, tracing_context
# 다양한 샘플링 비율로 클라이언트 생성
client_1 = Client(tracing_sampling_rate=0.5) # 50% 샘플링
client_2 = Client(tracing_sampling_rate=0.25) # 25% 샘플링
client_no_trace = Client(tracing_sampling_rate=0.0) # 트레이싱 없음
# 작업별로 다른 샘플링 비율 사용
with tracing_context(client=client_1):
# 여기에 코드 작성 - 50% 샘플링 비율로 트레이싱됨
agent_1.invoke(...)
with tracing_context(client=client_2):
# 여기에 코드 작성 - 25% 샘플링 비율로 트레이싱됨
agent_1.invoke(...)
with tracing_context(client=client_no_trace):
# 여기에 코드 작성 - 트레이싱되지 않음
agent_1.invoke(...)
이를 통해 작업 수준에서 샘플링 비율을 제어할 수 있습니다.