TonyBai · Go 语言进阶课
Tony Bai
资深架构师
1349 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已更新 41 讲/共 41 讲
模块三 · 工程实践,锻造生产级Go服务 (19讲)
TonyBai · Go 语言进阶课
15
15
1.0x
00:00/00:00
登录|注册

40 | 实战串讲(工程篇):“短链接服务”的工程化实践(中)

你好!我是 Tony Bai。
上节课,我们有了合理的配置管理和高质量的结构化日志,为应用的稳定运行和可运维性打下了坚实的基础。这节课,我们将开始为应用装上“眼睛”和“耳朵”的另外两个重要部分:Metrics 和 Tracing,进一步增强其可观测性。
引入基础可观测性——Metrics:我们将使用 prometheus/client_golang 库,在服务中暴露一些关键的性能指标(如 HTTP 请求计数和延迟),为后续的监控和告警打下基础。这部分内容关联可观测性这节课中关于 Metrics 的讲解。
引入基础可观测性——Tracing:我们将使用 OpenTelemetry Go SDK,为服务添加基本的分布式链路追踪能力,以便在未来更复杂的架构中追踪请求路径。为简化这两节课的实战环境,我们将使用标准输出(stdout)作为 Trace 的 Exporter,让你能直观地在控制台看到追踪数据,而不必搭建复杂的外部追踪系统。这对应了可观测性这节课中关于 Tracing 的介绍。
接下来,我们一一来看。

引入基础可观测性——Metrics

配置和日志帮助我们理解应用的静态设置和离散事件,而 Metrics(度量 / 指标)则为我们提供了量化应用宏观运行状态和性能趋势的能力。对于我们的“短链接服务”,我们关心诸如 HTTP 请求的总量、错误率、处理延迟等关键指标。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. 使用 `prometheus/client_golang` 为应用暴露基础的Metrics指标,通过HTTP中间件进行自动收集。 2. 利用 `OpenTelemetry Go SDK` 实现基础的链路追踪,通过`otelhttp`中间件自动追踪HTTP服务器请求,并在Service层演示了手动创建和管理子Span。 3. 通过HTTP中间件实现对所有请求进行通用处理,是实现对自定义HTTP指标动态更新的最佳方式。 4. 在生产环境中,将Exporter替换为指向Jaeger、Tempo或OTel Collector的Exporter,将追踪数据发送到专业的后端系统进行分析和可视化。 5. 通过插桩为“短链接服务”赋予了基础的链路追踪能力,使得在分析Trace时,能够清晰地看到请求的执行路径和耗时。

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

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部