TonyBai · Go 语言进阶课
Tony Bai
资深架构师
1153 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 29 讲/共 35 讲
TonyBai · Go 语言进阶课
15
15
1.0x
00:00/00:00
登录|注册

28 | 可观测性:Metrics、Logging、Tracing,让你的Go服务不再是黑盒(下)

你好,我是 Tony Bai。
上节课,我们深入了解了 Metrics、Logging 在 Go 生态中的主流技术栈和实践。这节课,我们先继续探讨 Tracing,再来聊聊这三者是如何整合的,可观测性数据采集中常见的 Push 与 Pull 模型,以及展望 eBPF 技术为 Go 应用可观测性带来的革命性影响。

Go 应用的 Tracing:洞察分布式链路与瓶颈

在微服务架构下,一个用户的请求可能需要依次或并行地调用多个 Go 服务(甚至混合其他语言的服务)才能完成。当这个请求变慢或出错时,如何快速定位是哪个环节、哪个服务出了问题?如何理解整个请求的端到端耗时和内部瓶颈?这就是分布式追踪(Distributed Tracing)要解决的核心问题。它允许我们像侦探一样,追踪一个请求从起点到终点,在复杂的分布式系统中穿梭的完整路径,并记录下每一段路程(即每次服务调用或重要操作)的耗时、元数据和可能发生的错误。
接下来,我们就深入探讨如何为 Go 应用引入分布式追踪能力。我们将首先理解其核心概念,然后重点学习业界标准 OpenTelemetry(OTel)在 Go 中的应用,包括如何进行代码插桩、上下文传播。最后,我们将通过一个包含两个 Go HTTP 服务相互调用的实战示例,演示如何将追踪数据发送到 OpenTelemetry Collector 并最终在 Grafana Tempo 中进行可视化和分析,让你直观感受分布式追踪的威力。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. OpenTelemetry(OTel)作为当前云原生生态中的事实标准,提供了统一的API、SDK和工具,用于生成、收集和导出遥测数据,包括Traces、Metrics和 Logs。 2. OpenTelemetry Go SDK的核心组件包括TracerProvider、Tracer、SpanProcessor和Exporter,它们协作工作来处理和导出Span数据。 3. 在Go代码中集成OTel Tracing的两种方式包括手动插桩和自动插桩,手动插桩提供了精细控制和捕获特定于业务逻辑的自定义指标和事件的能力。 4. 通过示例演示了如何在Go应用中实践分布式追踪,包括通过OpenTelemetry Go SDK对服务进行手工插桩,并通过OTLP gRPC Exporter将追踪数据发送到OpenTelemetry Collector,最终存储和可视化数据。 5. 主流Tracing后端与可视化,介绍了Jaeger、Zipkin和Grafana Tempo等追踪后端系统,以及它们的特点和优势。 6. 强调了使用OpenTelemetry SDK进行插桩并导出OTLP格式的数据,是确保未来灵活性和可移植性的最佳实践。 7. eBPF技术对Go可观测性的革命性影响,包括零侵入/自动插桩、获取更底层的、更全面的遥测数据以及对Go应用的价值。 8. eBPF技术为Go应用可观测性带来的革命性影响和未来的巨大潜力,包括实现更低开销的持续剖析和自动化的服务依赖拓扑发现和部分分布式追踪能力。 9. eBPF无疑正在为云原生可观测性带来一场深刻的变革,使得我们能够以一种前所未有的方式和粒度去理解和诊断我们的Go服务,并且很多时候是以对应用代码零侵入的方式。 10. 对于Go开发者来说,关注并理解eBPF技术及其在可观测性领域的应用,将是未来提升系统洞察能力、简化可观测性集成的一个非常重要的方向。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《TonyBai · Go 语言进阶课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • Mr.Ran
    示例代码更新没? https://github.com/bigwhite/publication.git
    2025-07-16归属地:四川
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)