InMemoryExporter 把 span 数据保存在进程内存中,而非上报至外部平台。它按 session_id 组织 span,便于本地调试、测试以及将某次会话的追踪数据落盘为 JSON 文件进行离线分析。
何时使用
- 本地开发与调试智能体执行流程;
- 在单元测试或集成测试中校验 span;
- 离线环境中无外部平台连接,需要本地留存与分析追踪数据。
自动管理
InMemoryExporter 由 OpentelemetryTracer 自动创建并管理,用于记录全部 span。因此它不能被显式加入 OpentelemetryTracer 的 exporters 列表,否则初始化会报错。
使用示例
会话运行结束后,可调用追踪器的dump 方法,将该会话的 span 导出为本地 JSON 文件:
参数
构造参数
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 筛选写入文件。