{{< details >}}

  1. Tier: 基础版, 专业版, 旗舰版
  2. Offering: 私有化部署

{{< /details >}}

极狐GitLab 提供了存活性和就绪性探测,以指示服务的健康状况和对所需服务的可达性。这些探测报告数据库连接、Redis 连接和文件系统访问的状态。可以将这些端点提供给 Kubernetes 等调度器以在系统准备好之前保持流量,或在需要时重新启动容器。

健康检查端点通常用于负载均衡器和其他 Kubernetes 调度系统,这些系统需要在重定向流量之前确定服务的可用性。

不应使用这些端点来确定大型 Kubernetes 部署的有效运行时间。这样做可能会在自动缩放移除 pod、节点故障或其他正常且不会中断操作的情况下显示假阴性。

要确定大型 Kubernetes 部署的运行时间,请查看 UI 的流量。这是经过适当平衡和调度的,因此是有效运行时间的更好指标。您还可以监控登录页面 /users/sign_in 端点。

在 JihuLab.com 上,使用诸如 Pingdom 和 Apdex 测量工具来确定运行时间。

IP 允许列表

要访问监控资源,请求的客户端 IP 需要包含在允许列表中。有关详细信息,请参见如何将 IP 添加到监控端点的允许列表

本地使用端点

使用默认的允许列表设置,可以通过以下 URL 从 localhost 访问探测:

GET http://localhost/-/health
GET http://localhost/-/readiness
GET http://localhost/-/liveness

健康

检查应用服务器是否正在运行。它不验证数据库或其他服务是否正在运行。此端点绕过 Rails 控制器,并作为附加中间件 BasicHealthCheck 实现,非常早地进入请求处理生命周期。

GET /-/health

请求示例:

curl "https://gitlab.example.com/-/health"

响应示例:

极狐GitLab OK

就绪

就绪探测检查极狐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 状态码。

此检查被 Rack Attack 豁免。

存活性

{{< alert type=”warning” >}}

在极狐GitLab 12.4 中,存活性检查的响应主体已更改为匹配下面的示例。

{{< /alert >}}

检查应用服务器是否正在运行。此探测用于了解 Rails 控制器是否因多线程而未死锁。

GET /-/liveness

请求示例:

curl "https://gitlab.example.com/-/liveness"

响应示例:

成功时,端点返回 200 HTTP 状态码,并返回类似于下面的响应。

{
   "status": "ok"
}

失败时,端点返回 503 HTTP 状态码。

此检查被 Rack Attack 豁免。

Sidekiq

了解如何配置 Sidekiq 健康检查