金丝雀观测指标是什么
金丝雀发布观测指标,用于快速区分新旧两个版本的行为差异。选择标准是:对故障敏感、噪声低、采集延迟短,并且与基线版本在同一时间窗口内对照,而不是只看新版本的绝对值。一般同时覆盖技术指标与关键业务指标——技术指标先发现异常,业务指标确认真实影响。少数几个核心指标的对照,比堆满面板的几十个指标更容易下结论。
基本信息
| 技术指标 | 5xx 错误率、延迟分位、重启次数、资源饱和度 |
|---|---|
| 业务指标 | 下单、支付、登录等关键路径的成功率与转化率 |
| 对照方式 | 金丝雀与基线同窗口对比,必要时对照前一日或上周同期 |
| 打标维度 | 按版本号或 Pod 模板哈希区分实例 |
| 观测窗口 | 按滑动窗口滚动计算,兼顾灵敏度与样本量 |
指标选取参考
| 指标类别 | 典型信号 | 越界表现 |
|---|---|---|
| 错误率 | 5xx 占比、异常码分布 | 明显高于基线或越过阈值 |
| 延迟 | p95、p99 分位 | 尾部延迟抬升而均值变化不大 |
| 饱和度 | CPU、内存、连接数 | 接近上限且持续攀升 |
| 业务 | 支付成功率、下单量 | 核心路径转化率下降 |
按版本对比错误率
按版本对比错误率
# 金丝雀版本错误率
sum(rate(http_requests_total{version="v2",status=~"5.."}[5m]))
/ sum(rate(http_requests_total{version="v2"}[5m]))
# 与基线版本同窗口对比
sum(rate(http_requests_total{version="v1",status=~"5.."}[5m]))
/ sum(rate(http_requests_total{version="v1"}[5m]))
# 延迟分位依赖直方图桶
histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket{version="v2"}[5m])) by (le))典型使用场景
- 上线金丝雀前先定好观察面板:把三到五个核心指标固定下来,避免发布时临时挑指标
- 配置自动化分析:为发布控制器编写指标查询与阈值判据,让放量决策有据可依
- 大促或重大变更前先采集基线:用平峰数据校准阈值,避免把正常波动判成异常
- 面向业务验收的变更:把注册、支付等业务指标纳入放量决策,而不只看技术指标
- 事故复盘:对照金丝雀与基线的指标曲线,定位差异出现的时间点
指标必须按版本维度打标(版本号或 Pod 模板哈希),否则金丝雀与基线的数据混在一起,对比无从谈起。
低流量时段样本不足,单看比例容易误判:结合样本量下限或延长观察窗口,必要时把绝对失败数也纳入判据。