Skip to main content
有时,你需要跨多个服务追踪一个请求。 LangSmith 开箱即支持分布式追踪,它使用上下文传播头(langsmith-trace 和可选的用于元数据/标签的 baggage)将跨服务的追踪中的运行链接起来。 客户端-服务器设置示例:
  • 追踪从客户端开始
  • 在服务器上继续

Python 中的分布式追踪

然后,服务器(或其他服务)可以通过适当处理头信息来继续追踪。如果你使用的是 ASGI 应用 Starlette 或 FastAPI,你可以使用 LangSmith 的 TracingMiddleware 来连接分布式追踪。
TracingMiddleware 类在 langsmith==0.1.133 版本中添加。
使用 FastAPI 的示例:
或在 Starlette 中:
如果你使用其他服务器框架,你总是可以通过 langsmith_extra 传递头信息来“接收”分布式追踪:
上面的示例使用了 tracing_context 上下文管理器。你也可以在 @traceable 装饰的方法的 langsmith_extra 参数中直接指定父运行上下文。

TypeScript 中的分布式追踪

TypeScript 中的分布式追踪需要 langsmith 版本 >=0.1.31
首先,我们从客户端获取当前运行树,并将其转换为 langsmith-tracebaggage 头值,然后将其传递给服务器:
然后,服务器将头信息转换回运行树,并使用它来进一步继续追踪。 要将新创建的运行树传递给可追踪函数,我们可以使用 withRunTree 辅助函数,它将确保运行树在可追踪调用中传播。