# 可用性监控探针(Availability Probe) 对应 EPIC #8「⑥ 部署底座」子任务 **#61**(0.5d,对齐 PRD 5.6 验收): 对已部署服务按周期轮询健康端点(`GET /health`),统计窗口可用率, 目标 **≥ 99.8%**。 ## 文件 ``` deploy/k8s/healthz/ ├── probe_availability.py 探针实现(AvailabilityProbe + CLI) ├── test_probe.py 单元测试(本地 HTTP 端点模拟) └── README.md ``` ## 用法(CLI) ```bash # 轮询 60 轮(每 1s 一次),目标 99.8% python probe_availability.py --endpoints http://10.20.0.30:8000 \ --rounds 60 --interval 1 --target 0.998 # 多端点 python probe_availability.py --endpoints http://a:8000,http://b:8000 \ --rounds 120 --interval 5 ``` 退出码:`0` = 可用率达标(PASS);`1` = 低于目标(FAIL), 供 CronJob / 监控告警使用。 ## 编程接口 ```python from probe_availability import AvailabilityProbe probe = AvailabilityProbe(["http://iaop-inference:8000"]) report = probe.run(rounds=60, interval=1) print(report.to_dict()) # {'total': 60, 'success': 60, 'availability': 1.0, # 'target': 0.998, 'meets_target': True, 'failures': 0, ...} ``` ## 验收口径(PRD 5.6) - 可用率 = 成功探测数 / 总探测数,窗口内 ≥ 99.8%; - 探针**只读**(GET /health),不影响服务状态; - 失败明细(URL/原因/延迟)随报告输出,便于定位。 ## 测试 ```bash python -m unittest test_probe -v ``` 覆盖:稳定端点 100% 达标、单次故障(1/500=0.2%)恰好达标、 50% 故障率判定 FAIL、失败明细记录。