核心可观测性功能事件队列与批处理

事件队列与批处理

Litefuse 的客户端 SDK 与各类集成都被设计为在后台对请求进行队列化和批处理,以优化 API 调用和网络耗时。批次的触发由时间和大小(事件数量与批次体积)共同决定。

配置

所有集成都带有合理的默认配置,但你可以根据需要自定义批处理行为。

选项(Python)[SDK 构造函数、环境变量]选项(JS)说明
flush_atLANGFUSE_FLUSH_ATflushAt批量发送前缓存事件的最大数量。
flush_intervalLANGFUSE_FLUSH_INTERVAL(秒)flushInterval(秒)发送批次前的最大等待时间(单位:秒)。

例如,你可以设置 flushAt=1 让每个事件立即发送,或 flushInterval=1 每秒发送一次。

手动 flush

在 serverless 函数等短生命周期环境中(例如 Vercel Functions、AWS Lambda),你应该在进程退出或运行时环境被冻结之前显式地 flush trace。如果不 flush 客户端,可能会丢失事件。

如果你希望立即发送一个批次,可以调用客户端上的 flush 方法。在出现网络问题时,flush 会记录错误并重试,永远不会抛出异常。

from langfuse import get_client
 
# access the client directly
 
langfuse = get_client()
 
# Flush all pending observations
 
langfuse.flush()
 

如果你要退出应用程序,请使用 shutdown 方法以确保所有请求在进程退出前被 flush 并等待挂起请求完成。该函数成功返回后,将不再有事件被发送到 Litefuse API。

from langfuse import get_client
 
langfuse = get_client()
 
langfuse.shutdown()
这个页面对你有帮助吗?