以编程方式使用文档

处理高容量应用时,您可能不想将每条追踪记录到 LangSmith。采样率允许您控制记录到 LangSmith 的追踪百分比,帮助您在可观测性需求和成本考虑之间取得平衡。

本指南向您展示如何使用 LANGSMITH_TRACING_SAMPLING_RATE 环境变量设置全局采样率,以及如何为每个 Client 实例应用不同的采样率,以实现对追踪操作的更精细控制。

设置全局采样率

默认情况下,所有追踪都会记录到 LangSmith。要减少记录到 LangSmith 的追踪数量,请设置 LANGSMITH_TRACING_SAMPLING_RATE 环境变量为介于 0 (无追踪)和 1 (所有追踪)之间的任何浮点数。例如,设置以下环境变量将记录 75% 的追踪。

这适用于 traceable 装饰器和 RunTree objects.

为每个客户端设置不同的采样率

您还可以在特定的 Client 实例上设置采样率,并使用 tracing_context 上下文管理器:

from langsmith import Client, tracing_context

# Create clients with different sampling rates
client_1 = Client(tracing_sampling_rate=0.5)  # 50% sampling
client_2 = Client(tracing_sampling_rate=0.25)  # 25% sampling
client_no_trace = Client(tracing_sampling_rate=0.0)  # No tracing

# Use different sampling rates for different operations
with tracing_context(client=client_1):
    # Your code here - will be traced with 50% sampling rate
    agent_1.invoke(...)

with tracing_context(client=client_2):
    # Your code here - will be traced with 25% sampling rate
    agent_1.invoke(...)

with tracing_context(client=client_no_trace):
    # Your code here - will not be traced
    agent_1.invoke(...)

这允许您在操作级别控制采样率。

采样或条件追踪

采样提供 **概率性** 追踪容量控制,而 条件追踪 提供基于业务逻辑的 **确定性** 控制。

当您想要在保持应用行为统计代表性的同时减少总体追踪量时,使用 **采样** 。

当您需要保证特定请求的追踪行为时,使用 条件追踪 ,例如:

  • - 为具有零保留策略的客户端禁用追踪。
  • - 根据租户将追踪路由到不同的项目。
  • - 处理绝不应被追踪的敏感数据。

您可以结合这两种方法,对可观测性策略进行精细控制。