用户投诉中午有两次打开白屏,每次持续两三分钟,监控平台的可用率仍然显示 100%,一条记录都查不到。乍看像缓存或者权限的锅,追下去往往不是。

U=https://www.example.com
while true; do
  curl -so /dev/null -w '%{http_code} %{time_total}\n' $U
  sleep 10
done

追下去是这么回事:平台五分钟才探一次,还要连续三次失败才告警,两三分钟的抖动正好落在两次探测之间,从采样上就根本看不见,可用率自然漂亮。

「监控间隔漏报」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。

能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。

具体做法是,关键页面单独配一分钟间隔,别跟普通页面共用一个模板;失败一次就先记事件,告警可以按连续次数做抑制;补一个内网发起的短周期拨测,跟平台的结果对照着看。

验收就看一点,同样的抖动在拨测记录里能对上时间点,可用率不再是恒定的 100%。

作者 9823189