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(...)
这允许您在操作级别控制采样率。

采样或条件追踪

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