3. Golden Signals 指标定义
Golden Signals 是 Google SRE 团队从生产运维实践中提炼出的四个核心观测维度,分别对应延迟、流量、错误和饱和度。这四个信号覆盖了用户端体验、系统负载、故障检测和容量瓶颈,是日志工程冷热分离架构中“热数据”筛选与“冷数据”降采样策略的决策依据。
3.1 延迟指标(Latency)
延迟衡量请求从发出到收到完整响应所消耗的时间。由于网络抖动、GC 暂停、资源争用等因素,延迟分布通常呈长尾特征,因此需要分位值(Percentile)来刻画不同百分位的体验。
| 分位值 | 含义 | 典型阈值(参考) | 冷热分离关注点 |
|---|---|---|---|
| P50(中位数) | 50% 的请求在此值以下完成 | < 200 ms | 反映大多数用户的正常体验,热数据保留原始采样 |
| P95 | 95% 的请求在此值以下完成 | < 500 ms | 识别尾部延迟恶化,热数据需保留完整上下文 |
| P99 | 99% 的请求在此值以下完成 | < 1 s | 长尾故障根因分析,冷数据降采样后仍需保留分位摘要 |
实践建议:在日志采集侧对每个请求记录
duration_ms 字段,并在热存储层预计算 P50/P95/P99 聚合桶,避免冷查询时全量扫描。
3.2 流量指标(QPS / TPS)
流量反映系统当前承载的请求压力。QPS(Queries Per Second)适用于查询类服务,TPS(Transactions Per Second)适用于事务型系统。流量指标直接决定日志写入速率和存储分片策略。
- QPS(每秒查询数):适用于 HTTP API、数据库读操作、搜索引擎。日志量级通常与 QPS 成正比。
- TPS(每秒事务数):适用于订单、支付、消息投递等包含多个步骤的原子操作。TPS 峰值往往对应日志写入洪峰。
- 冷热分离影响:流量突增时,热数据层需要快速扩容写入节点;冷数据层则按时间窗口批量归档,不受瞬时 QPS 波动影响。
关键公式:日志写入速率(条/秒)≈ QPS × 每条请求产生的日志条数。在架构设计中,热存储的写入吞吐必须 ≥ 3× 峰值 QPS 以应对毛刺。
3.3 错误率指标(Error Rate)
错误率是衡量系统健康度的最直接信号。错误率升高通常意味着代码缺陷、依赖故障或配置错误,需要立即触发告警并保留完整错误日志上下文。
| 错误类型 | 示例 | 冷热分离策略 |
|---|---|---|
| HTTP 5xx | 500 Internal Server Error | 热数据保留完整请求/响应体,冷数据仅保留错误码和摘要 |
| 业务错误码 | 订单重复、余额不足 | 热数据保留业务上下文,冷数据按错误码聚合统计 |
| 超时/熔断 | gRPC DeadlineExceeded | 热数据记录调用链 TraceID,冷数据保留超时分布 |
| 基础设施错误 | 连接池耗尽、磁盘 IO 错误 | 热数据立即告警并持久化,冷数据用于容量规划 |
注意:错误率指标应基于“请求总数”计算,而非“日志条数”。一条失败请求可能产生多条错误日志,直接统计日志条数会导致错误率虚高。
3.4 饱和度指标(CPU / 内存 / 磁盘 / 连接数)
饱和度反映资源接近极限的程度。当资源利用率超过 80% 时,系统通常进入非线性退化区,延迟和错误率会急剧上升。饱和度指标是冷热分离中“数据降级”的触发条件。
3.5 四类指标在冷热分离中的映射关系
下表总结了 Golden Signals 四类指标在日志工程冷热分离架构中的具体映射,帮助设计数据分层策略。
| Golden Signal | 热数据(实时层) | 温数据(近线层) | 冷数据(归档层) |
|---|---|---|---|
| 延迟(P50/P95/P99) | 保留原始请求级延迟,支持下钻分析 | 保留 P50/P95/P99 聚合桶,丢弃原始值 | 仅保留日/小时级分位摘要 |
| 流量(QPS/TPS) | 全量记录请求元数据,用于实时监控 | 按 1:10 降采样,保留趋势特征 | 仅保留分钟级聚合计数 |
| 错误率 | 全量保留错误日志及堆栈,触发即时告警 | 保留错误码分布和 TraceID 索引 | 按错误码聚合,保留周级统计 |
| 饱和度 | 秒级采集 CPU/内存/磁盘/连接数,用于弹性伸缩 | 分钟级聚合,用于容量规划 | 小时级快照,用于长期趋势分析 |
设计原则:热数据层优先保障延迟和错误率的全量可观测性;冷数据层优先保障流量和饱和度的长期趋势可回溯。饱和度指标达到阈值时,应主动触发热数据降采样,避免存储系统进入非线性退化区。