健康检查
极狐GitLab 提供 liveness 和 readiness 探测,指示服务运行状况和所需服务的可达性。这些探测报告数据库连接、Redis 连接和文件系统访问的状态。这些端点可以提供给像 Kubernetes 这样的调度程序,保持流量直到系统准备好或根据需要重新启动容器。
IP 许可名单
要访问监控资源,需要将请求的客户端 IP 包含在白名单中。
在本地使用端点
使用默认许可名单设置,可以使用以下 URL 从本地主机访问探针:
GET http://localhost/-/health
GET http://localhost/-/readiness
GET http://localhost/-/liveness
健康
检查应用程序服务器是否正在运行。
它不会验证数据库或其他服务是否正在运行。此端点绕过 Rails 控制器,并在请求处理生命周期的早期作为附加中间件 BasicHealthCheck
实现。
GET /-/health
示例请求:
curl "https://gitlab.example.com/-/health"
示例响应:
GitLab OK
Readiness
Readiness 探针检查极狐GitLab 实例是否准备好通过 Rails 控制器接受流量。默认情况下,检查仅验证实例检查。
如果指定了 all=1
参数,该检查还会验证依赖服务(数据库、Redis、Gitaly 等)并给出每个服务的状态。
GET /-/readiness
GET /-/readiness?all=1
示例请求:
curl "https://gitlab.example.com/-/readiness"
示例响应:
{
"master_check":[{
"status":"failed",
"message": "unexpected Master check result: false"
}],
...
}
失败时,端点返回 503
HTTP 状态代码。
如果通过 token
进行身份验证,则此检查会命中数据库和 Redis。
该检查免于 Rack Attack。
Liveness
检查应用程序服务器是否正在运行。 此探测器用于了解 Rails 控制器是否由于多线程而没有死锁。
GET /-/liveness
示例请求:
curl "https://gitlab.example.com/-/liveness"
示例响应:
成功时,端点返回一个 200
HTTP 状态代码,以及如下所示的响应。
{
"status": "ok"
}
失败时,端点返回 503
HTTP 状态代码。
该检查免于 Rack Attack。