药房跟踪
1)为什么要监视药房
Uptime-用户可以使用该服务的时间比例。这是可观察性的"第一线":立即注意到不可访问性,网络退化,DNS/TLS故障,路由问题或CDN。对于高负载和受监管的系统(fintech,iGaming),药房直接影响收入,SLA执行和罚款风险。
2)术语和公式
可用性SLI:"SLI=(成功验证/所有验证)× 100%"。
SLO: 每个窗口的目标可用性(通常为28-30天),例如99。9%.
SLA:外部义务;始终≤内部SLO。
MTBF/MTTR:中断之间的平均时间/平均恢复时间。
99.0% → ~ 432枚地雷
99.9% → ~ 43分钟
99.99% → ~4.3分钟
99.999%→ ~ 26秒
3)需要哪些检查(黑匣子)
从外部点(不同区域/提供商)启动,以"通过客户的眼睛"查看服务。
1.ICMP (ping)-基本网路/节点可用性。快速但不反映业务成功。
2.TCP连接-端口在收听?对经纪人/DB/SMTP有用。
3.HTTP/HTTPS-状态代码、标题、大小、重定向、第一个字节之前的时间。
4.TLS/证书-有效期,链,算法,SNI,协议。
5.DNS-A/AAAA/CNAME,NS健康,分发,DNSSEC。
6.gRPC-调用状态,deadline,元数据。
7.WebSocket/SSE-握手,保持连接,消息回声。
8.代理/路由/CDN-不同的PoP,高速缓存哈希样本,地理变体。
9.交易合成脚本(点击表):"登录→搜索→存款(沙箱)"。
10.Heartbeat/cron监视-服务必须"脉动"(每N分钟一次钩子);没有信号-警报。
- 将时间表放在更接近实际UX的位置(例如TTFB ≤ 300毫秒,总数≤ 2 c)。
- 检查内容assert (关键字/JSON字段)以确保错误的"200 OK"不被视为成功。
- 通过独立提供商和网络(多跳、不同ASN)复制检查。
4)白盒与服务健康
Liveness/Readiness为编排器取样(流程是活的?准备接收流量吗?)。
依赖性健康:DB,kesh,事件代理,外部API(付款/KYC/AML)。
幻灯片/降级:在出现问题时,轻轻关闭非关键路径。
白色样本不能代替外部检查:该服务可以"内部健康",但是由于DNS/TLS/路由,用户无法使用。
5)地理和多区域性
从关键流量区域和关键依赖提供商附近运行合成产品。
法定人数:如果在≥ N区(例如三分之二的)发生故障以切断局部异常,则记录事件。
队列阈值:重要部分(国家,VIP,电信运营商)的单个SLI/SLO。
6)警戒政策(噪音最低)
多区域+多样本:仅在一致失败时才寻呼机(例如HTTP和TLS同时≥ 2个区域)。
Debowns: N连续失败或分页前2-3分钟的窗口。
- L1: on call(生产服务)。
- L2:网络/平台/安全取决于故障签名。
- 自动关闭:在稳定的M成功检查之后。
- 安静的时钟/让步:对于非关键的国内服务-只有滴答声,没有寻呼机。
7)状态页面和通信
公共(客户端)和私有(内部)状态页面。
自动事件来自合成+手动注释。
消息模式: 发现-识别-影响-解决方法-ETA-解决-后枪口.
计划窗口:提前声明,例外情况与SLO分开计算。
8)外部依赖性核算
对于每个提供商(付款,KYC,邮件,CDN,云),其检查来自多个区域。
Failover路线:通过合成信号自动切换到替代提供商。
提供商级别的单个SLO和集成e2e-SLO。
与提供商谈判SLA(状态webhook,优先支持)。
9)Dashbords和关键小部件
具有检查状态的世界地图(按类型:HTTP,DNS,TLS)。
发布/标记注释事件的时间线。
P50/P95/P99 TTFB/TTL/latency按区域分列。
队列可用(国家/提供商/设备)。
MTTR/MTBF,每月可用性预算的"停机时间"和"burn-down"趋势。
失败的最高原因(TLS-expiry,DNS解决,5xx,timeouts)。
10)事件过程(短暂场景)
1.触发多区域/多类型警报。
2.值班人员确认,包括冻结发布,并通知所有者。
3.快速诊断:DNS/TLS/CDN状态、最新版本、错误时间表。
4.旁路:改变路线,folback内容/提供商,启用降级模式。
5.恢复:验证合成/实际流量是绿色的。
6.状态页面通信;事件结束。
7.RCA和动作项目:更正,测试,Alerta,花花公子。
11) SLA/SLO报告
每月报告:按服务/地区、停机分钟、MTTR、原因分列的药房。
与SLA的匹配:贷款/补偿(如果适用)。
季度评论:阈值主流化,合成分布,依赖性列表。
12)检查模板(示例)
HTTP API验证:- 方法:"GET/healthz/public"(无秘密)。
- Taymout:2 s,retry:1。
- 成功:"2xx",标题"X-Apt-Version",JSON字段"status":"ok"。
- 截止日期>14天,有效链,TLS协议1.2+',正确的SNI。
- 响应时间≤ 100毫秒,A/AAAA记录符合计划,没有SERVFAIL/REFUSED。
- Heartbeat:
Webhook '/beat/{service}每5分钟一次;没有连续2个信号-alert L2(背景任务/ETL)。
13)实施支票
- 多区域外部检查(HTTP/TCP/DNS/TLS/深层脚本)。
- 管弦乐队的白色readiness/liveness样本。
- 分离关键/非关键路径、退化的幻灯片标志。
- Alert、升级和自动关闭中的法定人数和下跌。
- 公共和内部页面状态,消息模板。
- 针对外部提供商+自动故障切换的单独检查和SLO。
- Dashbords:地图,时间线,percentils,停机分钟,MTTR/MTBF。
- SLA/SLO和事件后RCA的定期报告。
14)常见错误
只有没有NTTR/内容的 ping/端口在实际不可用时为"绿色"。
一个监测点是错误的正/负结论。
缺乏TLS/DNS控制-由于延迟/misconfig而导致突然停机。
多余的噪音:来自同一区域/检查类型的单个故障的异常。
与更改无关-dashbords中缺少版本和标志注释。
不负责任的依赖-支付提供商下降,整体状态为"绿色"。
15)结果
aptime跟踪不仅是"picking URL"。它是一个来自真实区域的合成检查系统,合理的无噪音异同,通过状态页进行透明通信,考虑外部依赖性和严格报告。正确构建的药房监控可减少MTTR,保护SLA并保持用户体验的可预测性。