API 健康监控巡检引擎(专业版)
输入
judge_health(status,latency_ms,threshold_ms=500);sla_availability(up,total);alert_level(consecutive_fail)
输出
healthy/degraded/down;(green|yellow|red, 可用率%);none/warn/critical/page
硬性规则
- 非2xx/3xx一律 down;超延迟阈值 degraded。
- 可用率≥99.9绿、≥99黄、否则红;total≤0 返回(unknown,0.0)。
- 连续失败 1→warn、2→critical、≥3→page。
示例
judge_health(200,50) → healthy
judge_health(200,800) → degraded
sla_availability(995,1000) → ("yellow",99.5)
alert_level(3) → page
Python 引擎(可独立运行)
# -*- coding: utf-8 -*-
def judge_health(status, latency_ms, threshold_ms=500):
if not (200 <= int(status) < 400):
return "down"
if latency_ms > threshold_ms:
return "degraded"
return "healthy"
def sla_availability(up_checks, total_checks):
if total_checks <= 0:
return "unknown", 0.0
rate = round(up_checks / total_checks * 100, 2)
if rate >= 99.9: level = "green"
elif rate >= 99.0: level = "yellow"
else: level = "red"
return level, rate
def alert_level(consecutive_fail):
if consecutive_fail <= 0: return "none"
if consecutive_fail == 1: return "warn"
if consecutive_fail == 2: return "critical"
return "page"