Golang怎么导出Trace到Zipkin_Golang如何配置OTel Exporter发送追踪数据到Zipkin【操作】
直接选 zipkin Exporter,官方包直接序列化为 Zipkin v2 JSON,避免 OTLP 转换丢字段、时间错位;需显式注册到 TracerProvider 的 WithBatcher,配置合理 batch 参数,并通过 WithResource 设置 service.name,否则 Zipkin 显示 Unknown。Go 用 otlphttp 还是 zipkin Exporter?直接选 zipkin Exporter,别碰 otlphttp + Zipkin 的转换网关。Zipkin 的接收端(/api/v2/spans)只认原生 JSON 格式,OTLP 转 Zipkin 网关容易丢字段(比如 status.code 变成 error: true)、时间戳错位,而且多一层转发,故障点变多。官方 go.opentelemetry.io/otel/exporters/zipkin 包就是干这事的,它把 Span 直接序列化成 Zipkin v2 JSON,发得干净利落。确认你用的是 v1.22.0+ 的 otel/exporters/zipkin(旧版不支持 HTTP Basic 认证和自定义 Host 头)Zipkin 服务地址必须带协议和端口,比如 http://zipkin.example.com:9411,少个 http:// 就静默失败如果 Zipkin 前面有反向代理(Nginx / Traefik),确保它允许 POST /api/v2/spans,且没过滤 Content-Type: application/json怎么初始化 zipkin.NewExporter 并注册到 TracerProvider?不是调个函数就完事——zipkin.NewExporter 返回的是 exporter.SpanExporter,必须显式传给 sdktrace.NewTracerProvider 的 WithSyncer 或 WithBatcher,否则 Span 一概不发。别用 WithSyncer 上生产:它每次 Span 结束都阻塞发 HTTP,压测时 CPU 没炸,QPS 先归零。默认用 WithBatcher,但要注意 batch 参数:立即学习“go语言免费学习笔记(深入)”; Trenz AI驱动的社交电商营销平台,专为TikTok Shop设计
