{{< details >}}
- Tier: 基础版, 专业版, 旗舰版
- 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 健康检查。