健康检查

极狐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。