OBI 的日志增强通过 kprobe 挂钩 tty_write(终端输出)与 pipe_write(覆盖 docker logs/kubectl logs),当被监控进程写出日志时,BPF 程序从用户态缓冲区读取最大 8KB 原始内容,同时通过 obi_ctx 获取当前线程/协程的 trace context,用 bpf_probe_write_user 将原始日志擦零后经 ringbuf 送到用户态。用户态处理器尝试解析为 JSON 并注入 trace_id/span_id 后写回原路径。若应用自带 OTel SDK 导出 Traces,则只注 trace_id 避免 span_id 冲突。已知限制:擦零到写回之间存在窗口,进程崩溃可能出现空白行;启用 Lockdown 的内核会禁用该函数。




