SuperAPI AI 工具集

health-check

编程与开发

查看项目

更新于 10-15 19:49

技能介绍

用途:为 Next.js 与 FastAPI 服务提供存活、就绪与深度依赖健康端点,统一三层探针架构,并覆盖 Docker 健康检查、cron 周期监控、路由发现校验和系统健康脚本。

主要能力:三层探针分离——存活(进程是否存活,无数据库或外部调用,需 50ms 内返回)、就绪(检查数据库、缓存等快速关键依赖,单次超时 2–5 秒)、深度(并行检查全部依赖并测量延迟,用于调试与监控面板)。状态模型为 healthy/degraded/unhealthy,健康与降级返回 200,不健康返回 503;聚合规则为任一依赖不健康则整体不健康,否则任一降级则整体降级。依赖检查通过 Promise.all 或 asyncio.gather 并行执行,每次检查使用 AbortSignal.timeout(5000)。

现有端点:后端 GET /health(存活)、GET /ready(就绪)、GET /api/agents/{id}/health(智能体健康);前端 GET /api/health(浅层存活)、GET /api/health/deep(深度依赖)、GET /api/health/routes(路由发现)、GET /api/cron/health-check(周期 cron)。Docker 中 PostgreSQL 使用 pg_isready -U starter_user -d starter_db,Redis 使用 redis-cli ping,间隔 10s、超时 5s、重试 5 次;应用容器可用 curl -f http://localhost:8000/health,并设置 start_period。cron 每 5 分钟运行,使用 CRON_SECRET 承载令牌鉴权。系统脚本 scripts/health-check.ps1 执行六阶段检查,退出码 0 表示健康、1 表示不健康。

使用方式:新增依赖时按模板编写检查器并加入深度端点的 Promise.all 数组;新增周期检查时校验 CRON_SECRET、测量延迟、记录日志并在不健康时告警。

限制与反模式:存活探针不得查询数据库;不得串行检查依赖;不健康必须返回 503;每次检查必须设超时;健康响应不得暴露内部错误或堆栈;Docker 健康检查需设 start_period;服务 URL 应使用环境变量而非硬编码。指标采集、结构化日志、优雅关闭等由其他技能负责。