当前位置:首页 >专题 >Go OpenTelemetry 可观测性实战
Go OpenTelemetry 可
Go OpenTelemetry 可观测性实战
从 SDK、埋点与上下文传播到 OTLP、Collector 和采样治理
这个专题面向已经开发过 Go 服务、准备把日志、指标和链路追踪真正接入生产环境的开发者。内容从 OpenTelemetry Go SDK 和手动埋点开始,逐步覆盖 HTTP 与微服务上下文传播、Jaeger/OTLP 导出、Collector 部署、异步任务和采样治理,帮助你把一次请求从代码一路追到后端。
官方入口
先用一手资料建立正确的版本与架构认知
外链
OpenTelemetry Go 官方文档
Go API、SDK、Traces、Metrics、Logs、Instrumentation、Exporters、Sampling 与 Examples 的官方入口。
实战学习路径
从单体埋点推进到跨服务和生产治理
文章
Golang实现OpenTelemetry链路追踪指南
从依赖安装、Tracer、Exporter、Sampler 到 HTTP 框架、异步任务和 Collector,覆盖 Go 接入 OTel 的完整实践。
文章
Golang微服务链路追踪:Jaeger与OpenTelemetry配置详解
以 Jaeger 和 OpenTelemetry 为例,覆盖 otelhttp、BatchSpanProcessor、采样和链路分析。
文章
使用 Golang otelmux 检测 OTEL 跟踪,获取 trace_id 的方法
围绕 otelmux 中间件和 trace_id 获取,说明如何把请求链路标识接入 Go Web 服务。
常见问题
接入 OpenTelemetry 前后最容易混淆的边界
OpenTelemetry、Jaeger 和 Collector 分别是什么?
OpenTelemetry 负责标准化 API、SDK 和数据模型,Collector 负责接收、处理与转发遥测数据,Jaeger 是常见的 Trace 存储与可视化后端;三者可以组合使用,但不是同一个组件。
Go 服务应该全部手动创建 Span 吗?
不需要。HTTP、数据库、消息客户端等优先使用成熟 instrumentation 库,业务关键步骤再补手动 Span,并统一命名、属性和错误记录规则。
为什么 Goroutine 中的 Trace 会断掉?
通常是因为启动异步任务时没有传递包含 Span 的 Context,或任务生命周期结束后 Span 才被错误地结束。应显式传递 Context,并为异步任务设置清晰的 Span 边界。
生产环境如何控制 OpenTelemetry 的性能开销?
使用 BatchSpanProcessor,合理设置采样策略,避免把高基数或敏感数据写入属性,并通过 Collector 承担批处理、过滤和路由;上线前用压测验证实际开销。
相关专题
继续查看相近方向内容
查看更多
最新文章
-
- Java 文件上传如何挡住路径穿越:Path.normalize、真实路径与原子落盘
- 12小时前 296浏览
-
- Go 1.25 的 synctest 怎么测定时器:把异步重试从真实等待改成可控推进
- 15小时前 405浏览
-
- Linux 文件句柄突然耗尽怎么查:从 /proc/PID/fd 找到泄漏进程并安全恢复
- 15小时前 386浏览
-
- OpenTelemetry OTTL Lambda 表达式怎么用:字段清洗、路由与上线边界
- 15小时前 269浏览
-
- 前端大报表导出怎么选:浏览器直出还是后端异步任务
- 16小时前 331浏览
-
- 前端 WebSocket 断线重连为什么会打爆接口:指数退避、抖动与页面恢复
- 16小时前 366浏览
-
- 医保亲情账户怎么用:绑定老人孩子、出示医保码与家庭共济的区别
- 16小时前 247浏览
-
- Postman 环境变量怎么切换:本地值、共享值与请求验证
- 16小时前 253浏览

