Skip to content
LangSmith 文档版本 跟随上游 源快照 8d02dc06 更新于 2026-10-18

为追踪设置采样率

在处理高流量应用时,你可能不希望将每条追踪都记录到 LangSmith。采样率允许你控制记录多少比例的追踪,帮助你在可观测性需求与成本之间取得平衡。

本指南介绍如何使用 LANGSMITH_TRACING_SAMPLING_RATE 环境变量设置全局采样率,以及如何为每个 Client 实例应用不同的采样率,从而更精细地控制哪些操作会被追踪。

TIP

要根据运行时条件(例如数据敏感性、租户或功能标志)为特定请求启用或禁用追踪,请参阅条件追踪。

设置全局采样率

NOTE

本节适用于使用 LangSmith SDK 或 LangChain 的用户,不适用于直接使用 LangSmith API 记录数据的用户。

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

bash
export LANGSMITH_TRACING_SAMPLING_RATE=0.75

这适用于 traceable 装饰器和 RunTree 对象。

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

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

python
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(...)

这使你能够在操作级别控制采样率。

采样还是条件追踪

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

当你希望在减少整体追踪量的同时保持应用行为的统计代表性时,请使用采样。

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

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

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


BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。