跟踪: 失败或不受支持的 TRACE_EXPORTER 会在空的输出器上安装 BatchSpanProcessor,并默默丢弃每个跨度
作者: akshat-kumar-singhal创建于 2026年9月14日更新于 2026年9月14日
页:1
App.initTracher ' 登记了GetExporter ' 返回的出口商的BatchSpanProcessor ' ,但没有检查其是否实际生产。 当不是时,Tracher Provider ' 安装了一个批量处理器,无声地丢弃每一段,该应用程序看起来适合追踪。
发展'的pkg/gofr/otel.go'(`9bbdbbe2'):
开始 出口者, 错误 : = a.getExporter( 追踪输出者、 追踪者、 追踪者、 追踪者、 追踪者) 如果错误 ! = 无 { a. 容器. 错误( err) {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
分批商:= sdktrace. NewBatchSpanProcessor(出口商)//出口商可能为零 tp.RegisterSpanProcessor(屠宰工)
达到它的两个途径
1. ** 建造者返回一个错误。 ** 错误已被记录, 则反正会使用零出口国 。
2. ** 无支持的`TRACE-出口 ' ** `违约: ' `出口者 ' 分支称`a.集装箱 ' 。 错误f (“ 不支持的 TRACE Exporter :%s ” , name) “ ” 并掉入, 返回一个** 无出错的出口商 ** —— 因此, 即使上面的“ 如果错误 != 无” 也不会开火 。
它不惊慌——这就是很难注意到的原因
`NewBatchSpanProcessor(无)'是安全的:SDK在`sdk/trace/batch span pageor.go:153'(`if bsp.e =========================================================================================================================================================================================================== 与被钉住的 " go.openterometry.io/otel/sdk v1.4.4.0 " 相对立——开始、结束和下降; " ForceFlush " 返回 " 无 " 。
所以没有崩溃,也没有重复的错误。 启动时有一条出错线,之后服务用 " Tracer Provider " 样本运行,其间断无所出。 `TRAC- Exporter=otlpp' (typo) 正是这种产品。
预期
未能建造出货商,应降解为“追踪未配置”的同一地点:`NeverSample'供应商,因此相关ID保持独有,没有安装任何批量处理器。
页:1
#4206已将此作为将出口商建筑迁入登记册的副作用加以纠正。 Build " 返回“NeverSample”提供者,条件是建造者不生产出口商(`pkg/gofr/traces/exporters/productioners.go:52-55')。 单独归档,因为虫子生活在 " 开发 " 上,直到合并,而且如果4206号改变形状,就值得自行确定。
由@aryanmehrotra在回顾#4205时找到.内容来源: gofr-dev/gofr