指标采集与观测

基于 Prometheus、OpenTelemetry Collector、Grafana 三份真实源码,把「系统到底在干什么」这件事从头讲透——数据模型、时序存储内核、查询引擎、统一管道、链路追踪、可视化与工程实践。

作者 David更新于

指标采集与观测

系统出问题时,最怕的不是报错,而是一片漆黑,不知道发生了什么。可观测性(Observability)就是给系统装上仪表盘和黑匣子——让运行中的系统能够自证“我现在在干什么、刚才发生了什么”。

这个专栏不停留在“怎么用 Prometheus 配个告警”,而是打开三个主流项目的真实源码,看这套体系到底怎么造出来的。

三个主角,一条链条

本专栏基于三份真实源码,它们恰好构成可观测性的完整链条:

项目版本在链条里的位置
Prometheusv3.13.1采集 + 存储 + 查询(指标支柱的事实标准)
OpenTelemetry Collectorv0.156.0统一管道(三大支柱的通用中转站)
Grafanav13.1.0观测端(可视化、探索、告警)

数据从被埋点产生,经采集、管道、存储、查询,最后变成你屏幕上那条曲线——这条路上的每一站,我们都会打开源码看个究竟。

这个专栏怎么写

源码优先——凡有结论,尽量给出真实的文件路径 + 类型名 + 关键函数,而不是泛泛而谈“原理大概是这样”。

  • 讲真实的实现 —— 比如 TSDB 的磁盘格式,我们直接读 tsdb/docs/format/ 里的官方规范和 tsdb/ 的实现,而不是复述二手博客。
  • 讲设计的取舍 —— 每个设计背后都有权衡(为什么 Prometheus 选 pull 而非 push?为什么 Collector 的管道是个 DAG?),取舍比结论更值得学。
  • 一章一专题 —— 每篇聚焦一个问题,读完能答上“这块为什么存在、怎么和别的块协作”。

路线图

全 10 个部分、53 章:

部分主题核心问题
0导论与全景可观测性是什么、三大支柱、一条指标的一生
1Prometheus:数据模型与采集指标长什么样、怎么被抓回来
2指标体系:RED、USE 与黄金信号该定义哪些指标、怎么命名、合理范围是多少
3TSDB:时序存储内核海量时序数据怎么存得下、查得快
4PromQL:查询引擎与实战怎么从数据里问出答案
5告警工程什么时候该叫醒你、阈值怎么定、怎么不被淹没
6OpenTelemetry Collector:统一管道三大支柱怎么被同一条管道运送
7链路追踪与日志支柱一个请求怎么被串起来
8Grafana:观测端数据怎么变成能看懂的东西
9工程实践与收尾基数爆炸、成本、落地路径、全专栏回顾

本专栏两条腿走路:一条是源码(打开三个项目看实现),另一条是实战——第 2 部分讲怎么定义指标(RED / USE / 黄金信号方法论、命名规范、常见指标的合理范围),第 5 部分讲怎么告警(阈值怎么定、SLO 燃烧率、如何不被告警淹没)。懂原理是为了做对决策,这两部分就是决策本身。

适合谁读

写过服务、配过监控、但想知道盒子里到底怎么回事的人。你不需要精通 Go——源码片段都会配上人话解释;但如果你能读 Go,收获会更大。

准备好了就开始。👉 为什么需要可观测性。

本页目录