Prometheus client_golang vs OpenTelemetry: Go 服务指标埋点

给 Go 服务加指标(比如「查一次词花了多少毫秒」),代码里要选一个埋点库。常见的两个选择是 Prometheus 官方的 client_golang 和 OpenTelemetry 的 Go SDK。两者都能产出同样的 Prometheus 指标,差别在覆盖范围、配置量和对后端的绑定程度。 采集、存储、展示这一层(Alloy、Prometheus、Loki、Grafana)的对比见 可观测性工具对比。本文只讲应用代码里的埋点这一层。 埋点库在哪一层 graph LR A["应用代码埋点库:client_golang 或 OTel SDK"] --> B["采集Prometheus 抓取 / Alloy / OTel Collector"] B --> C["存储Prometheus / Mimir / Grafana Cloud"] C --> D["展示Grafana"] 埋点库决定两件事:代码里怎么记录一个数字,以及这个数字以什么格式交出去(Prometheus 的 /metrics 文本格式,或者 OTLP 协议)。它不决定数据最后存在哪。 Prometheus client_golang github.com/prometheus/client_golang 是 Prometheus 项目的官方 Go 客户端,只做指标。 工作方式是拉(pull):应用在内存里维护计数器和直方图,通过 HTTP 暴露一个 /metrics 端点,Prometheus(或 Alloy)定期来抓。应用不知道谁来读,也不主动往外发。 四种指标类型: 类型 用途 例子 Counter 只增不减的计数 请求总数、错误总数 Gauge 可增可减的当前值 正在处理的请求数、队列长度 Histogram 按桶统计分布,服务端可算分位数 请求耗时,用来算 p95/p99 Summary 客户端直接算分位数 很少用;分位数无法跨实例聚合,一般用 Histogram 最小示例: ...

Created 29296-09-29 · Updated 29296-09-29 · 3 min · 443 words · -

MAU: Monthly Active Users 月活用户

MAU 是什么 MAU = Monthly Active Users,中文叫「月活跃用户数」,口语里就说「月活」。MAU、月活、月活跃用户是同一个指标的三种叫法,没有区别。 它衡量的是:在一个月的时间窗口里,有多少个不同的用户对产品做过一次「算数的」操作。 两个变量决定了这个数字: 「活跃」怎么算 —— 打开 App?登录?完成一次核心操作(发消息、查一个词、下一单)?每个产品自己定,口径不同数字差很多。 「一个月」是哪一个月 —— 见下面「统计口径」。 同一个用户这个月里操作 100 次,也只算 1 个 MAU(按用户去重)。 统计口径:滚动 30 天 vs 自然月 自然月:2 月 1 日 00:00 到 2 月最后一天,落在这个区间里活跃过的去重用户数。一个月出一个数。 滚动 30 天(trailing 30 days):从今天往前数 30 天,这个窗口里的去重活跃用户。每天都能出一个数,曲线更平滑,也不受「这个月有 28 天还是 31 天」影响。 分析工具(GA4、Mixpanel、Amplitude)和产品仪表盘多数用滚动窗口;财报、投资人材料多数用自然月。看到一个 MAU 数字,先问清楚是哪一种。 DAU / WAU / MAU 同一套逻辑,换时间窗口: 指标 窗口 主要用途 DAU 日活跃用户 看日常波动、发版影响、周末效应 WAU 周活跃用户 平滑掉「工作日 / 周末」噪声 MAU 月活跃用户 看整体规模、增长趋势、对外汇报 DAU ≤ WAU ≤ MAU:窗口越大,去重后能框进来的人越多。 ...

Created 4046-09-04 · Updated 4046-09-04 · 1 min · 186 words · -