健康检查
AISIX 为进程、流量、配置和模型状态分别提供健康与状态端点。这些端点同时适用于 AISIX OSS,以及连接 AISIX Enterprise 或 AISIX Cloud 的网关。请使用与所监控条件对应的端点。要验证从调用方到模型服务提供方的完整路径,请通过网关发送测试请求。
| 问题 | 端点 | 监听器 |
|---|---|---|
| 这个实例是否应该被重启? | GET /livez | 代理 |
| 此实例是否应接收代理流量? | GET /readyz | 代理 |
| 此实例是否已应用任何有效配置? | GET /status/ready | 指标/状态 |
| 此实例当前使用什么配置提供服务? | GET /status/config | 指标/状态 |
| 模型是否可用于路由? | GET /status/models | 指标/状态 |
这些端点不需要身份认证。启用 Prometheus 指标时会提供指标/状态端点;默认情况下已启用。请确保该监听器仅对监控和运维系统开放。
代理存活检查
使用 /livez 检查进程存活状态:
curl -i "http://127.0.0.1:3000/livez"
健康进程返回 200 OK,响应体为 ok。
正在排空的实例同样返回 200。存活检查决定的是要不要重启实例,而排空是有意为之的工作:一个已被告知关闭的实例正在处理完它已经接收的请求,重启它恰好会杀掉这些请求。报告排空状态的是 /readyz,这样流量会被撤走,而实例不会在自己仍有进行中请求时被替换掉。
手动排查时可以追加 ?verbose=1。自动化探针不要依赖 verbose 响应体。
存活检查刻意保持较窄范围。它不能证明模型可用,也不能证明模型服务提供方请求能够成功。
它确实意味着网关已经加载了配置,但这只是承载该端点的监听器何时存在所带来的副作用。从 etcd 或控制面读取资源的网关,在应用第一个配置之前不会绑定代理监听器,因此在那之前 /livez 不是返回 503,而是根本不会有响应。参见启动与第一个配置。