Skip to main content
在处理高流量应用时,您可能不希望将所有追踪记录都发送到 LangSmith。采样率允许您控制记录追踪的百分比,帮助您在可观测性需求和成本考量之间取得平衡。

设置全局采样率

本节适用于使用 LangSmith SDK 或 LangChain 的用户,不适用于直接通过 LangSmith API 记录追踪的用户。
默认情况下,所有追踪都会被记录到 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(...)
这允许您在操作级别控制采样率。

采样与条件追踪

采样提供对追踪量的概率性控制,而条件追踪则基于业务逻辑提供确定性控制。 在以下情况下使用采样:您希望减少总体追踪量,同时保持应用行为的统计代表性。 在以下情况下使用条件追踪:您需要为特定请求提供保证的追踪行为,例如:
  • 为零保留策略的客户端禁用追踪。
  • 根据租户将追踪路由到不同的项目。
  • 处理不应被追踪的敏感数据。
您可以结合使用这两种方法,以实现对可观测性策略的精细控制。