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

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

你好,我是 Tony Bai。
上节课,我们一起探讨了云原生时代为何可观测性如此重要,以及它是如何从传统监控演进而来,其核心支柱又是什么。这节课,我们将深入了解 Metrics、Logging 和 Tracing 三大支柱在 Go 生态中的主流技术栈和实践:
Metrics(度量 / 指标):如何使用 Prometheus 或新兴的 VictoriaMetrics 来量化 Go 应用的状态与趋势。
Logging(日志):如何构建有效的结构化日志系统,并利用 Loki 或 VictoriaLogs 等方案进行集中管理和分析。
Tracing(追踪 / 链路):如何借助 OpenTelemetry 和 Grafana Tempo 等工具,洞察分布式请求的完整路径和性能瓶颈。因为内容比较多,这一部分我们放到下节课讲。
首先,我们来看 Metrics。

Go 应用的 Metrics:量化系统状态与趋势

Metrics(度量或指标)是可观测性的基石之一。它们通过可聚合的数值型时间序列数据,为我们描绘出系统在一段时间内的运行画像,告诉我们系统“有多快”、“有多忙”、“消耗了多少资源”、“产生了多少错误”等等。对于 Go 应用而言,我们不仅关心其底层的资源消耗(如 CPU、内存),也关心其业务层面的表现(如请求速率、处理延迟、错误数量等)。接下来,我们将学习 Metrics 的核心概念,了解主流的 Go Metrics 方案(特别是 Prometheus 及其兼容生态如 VictoriaMetrics),并掌握如何在 Go 应用中实际暴露和收集指标。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. Prometheus是一个开源的监控和告警工具包,基于Pull模型,通过HTTP从目标的`/metrics`端点拉取数据,而在Go应用中,开发者可以通过使用官方的`prometheus/client_golang`库来暴露Prometheus格式的Metrics。 2. VictoriaMetrics是一款开源的高性能、高性价比的时间序列数据库和监控解决方案,与Prometheus生态系统高度兼容,具备优异的数据摄入和查询性能,低资源消耗,易于部署和水平扩展,支持Push和Pull模型,成为一个灵活且高效的监控解决方案。 3. Grafana是一个开源监控数据可视化和分析平台,以其强大的图表能力、灵活的仪表盘定制、丰富的数据源支持以及美观的界面而著称,可以连接多种数据源,包括Prometheus、VictoriaMetrics等。 4. 高质量的日志是故障排查、行为审计和深入理解系统行为不可或缺的“证据”,应具备结构化格式、多种日志级别、丰富的上下文信息、可配置的输出目标与收集策略、性能考量等核心要素。 5. 在Go应用中使用`log/slog`输出结构化、富含上下文的JSON日志到标准输出,以及如何使用Filebeat作为日志收集代理,从Go应用容器的stdout收集这些日志,并配置Filebeat将日志直接发送到VictoriaLogs的Elasticsearch兼容API。 6. 选择哪种日志收集、存储和分析方案,是一个需要根据团队规模、数据量、查询需求、运维能力、成本预算以及与现有监控体系的集成偏好等多种因素综合权衡的决策。 7. 日志系统应服务于整体可观测性目标,具备可配置的输出目标与收集策略,以确保高效的日志管理,同时不应成为应用的性能瓶颈。 8. 在可观测性的“黄金三角”中,日志扮演着记录离散事件、提供详细上下文的关键角色,为了让Go应用的日志能够被高效地收集、存储、索引,并能与其他遥测数据(如TraceID)轻松关联,需要在应用层面遵循一系列最佳实践。 9. Go应用输出高质量的、结构化的、富含上下文的日志,是决定整个日志体系能否发挥最大价值的源头。

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

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
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
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)