配置化网关 Trace Header
go run ./examples/telemetryHeaders
这个离线示例使用标准库 httptest,不连接网关、数据库或外部 Collector。它把 X-Trace-Id、X-Span-Id 和 X-Request-Id 配置给通用 telemetry.HeaderPropagator,再通过 app.Use(runtime.Middleware()) 进入服务。业务 Handler 只读取 logx.TraceID / logx.RequestID,不解析 Header。
HeaderPropagator 同时支持标准 W3C traceparent;两种格式同时存在时优先 W3C。出站请求使用 telemetry.Transport 时会注入 W3C 和配置的兼容 Header。旧项目不配置它时,go-omni 仍只使用默认 W3C 传播。
示例中的 ID 是固定测试值。生产环境只有在网关或受信代理已经校验这些 Header 时才启用兼容传播;Trace ID/Span ID 不是认证凭据,也不能用于授权、幂等或租户隔离。自定义 Header 不携带采样标志,适配器会把有效的成对 ID 视为已采样;需要保留上游采样决定时应使用 traceparent。