Skip to main content
InMemoryExporter 把 span 数据保存在进程内存中,而非上报至外部平台。它按 session_id 组织 span,便于本地调试、测试以及将某次会话的追踪数据落盘为 JSON 文件进行离线分析。

何时使用

  • 本地开发与调试智能体执行流程;
  • 在单元测试或集成测试中校验 span;
  • 离线环境中无外部平台连接,需要本地留存与分析追踪数据。

自动管理

InMemoryExporter 由 OpentelemetryTracer 自动创建并管理,用于记录已完成且被采样的 span。因此它不能被显式加入 OpentelemetryTracer 的 exporters 列表,否则初始化会报错。

使用示例

会话运行结束后,可调用追踪器的 dump 方法,将该会话的 span 导出为本地 JSON 文件:
app.py

参数

构造参数

InMemoryExporter 通常无需手动构造,其构造参数如下:

dump 方法参数

OpentelemetryTracer.dump 依赖内存导出器留存的 span,参数如下: 落盘文件名形如 {name}_{user_id}_{session_id}_{trace_id}.json,内容为 span 列表,每个 span 包含名称、span_id、trace_id、起止时间、属性以及父 span 关系。
内存导出器的占用会随 span 数量增长,长时间运行的进程应注意内存增长。会话级筛选依赖正确配置的 session_id;dump 会先强制导出所有待处理 span,再按 session_id 筛选写入文件。

判断导出结果

先完成模型配置,将示例保存为 app.py 后运行 python app.py。终端输出的文件路径应存在,JSON 列表应包含本次模型调用的 span 内存数据在进程退出后丢失。会话筛选依赖模型调用写入的会话标识;未产生相关模型 span、采样未保留数据或会话标识不一致时,文件可能为空。user_id 用于文件命名,不用于导出筛选,也不构成访问控制
最后修改于 2026年9月19日