ENGINEERING NOTE 05 / 50 · SMS
接码等待时间不能只看平均值
平均值会掩盖用户最在意的长等待。将收码耗时与过期订单并列,并说明哪些订单进入耗时分布。
本文由 OPEN RAMBO 发布。工程方案和伪代码用于说明设计,不是现有产品 API 文档;示例数字均为演示。
选择计时起点
订单创建和号码分配是不同时间点。分别统计分配耗时与等待短信耗时。用户可能稍后才触发短信,而系统未必知道这个时间,不能把整个区间叫运营商投递延迟。
分位数旁保留失败数量
仅基于成功订单的p95不能解释过期订单。旁边展示成功样本数与过期数。比较相同服务、国家和成熟时间窗,避免流量结构变化被误认为改善。
按尾部等待做决策
中位数稳定而p95上升时,先查排队、轮询空档和回调延迟,再考虑延长超时。更长窗口可能只是把失败推迟。保留配置变更时间线,区分改善与统计变化。
示意流程
latency = received_at - allocated_at
report = {"received_n": n, "expired_n": e,
"p50_seconds": p50, "p95_seconds": p95}如何验收
检查时间单位与缺失值。不要把没有收码时间的订单记作零耗时,这会制造虚假的加速。