{{< details >}}
- Tier: 基础版, 专业版, 旗舰版
- Offering: 私有化部署
{{< /details >}}
通过从主应用服务器中独立收集指标,提高极狐GitLab监控的可靠性和性能。专用的指标服务器将监控流量与用户请求隔离,防止指标收集影响应用性能。
对于中到大型安装,此分离可以在高峰使用期间提供更一致的数据收集,并减少在高负载期间丢失关键指标的风险。
极狐GitLab指标收集的工作原理
当使用 Prometheus 监控极狐GitLab 时,极狐GitLab 运行各种收集器,采样与使用、负载和性能相关的数据。极狐GitLab 然后通过运行一个或多个 Prometheus 导出器将这些数据提供给 Prometheus 抓取器。Prometheus 导出器是一个 HTTP 服务器,它将指标数据序列化为 Prometheus 抓取器可以理解的格式。
{{< alert type=”note” >}}
此页面是关于 web 应用程序指标的。要导出后台作业指标,请学习如何配置 Sidekiq 指标服务器。
{{< /alert >}}
我们提供两种机制来导出 web 应用程序指标:
- 通过主 Rails 应用程序。这意味着我们使用的应用程序服务器 Puma 通过其自己的
/-/metrics
端点提供指标数据。这是默认设置,并在 极狐GitLab指标 中描述。我们推荐此默认设置用于小型极狐GitLab安装,其中收集的指标量较小。 - 通过专用的指标服务器。启用此服务器会导致 Puma 启动一个额外的进程,其唯一职责是提供指标。这种方法为非常大的极狐GitLab安装提供了更好的故障隔离和性能,但会增加内存使用。我们建议中到大型极狐GitLab安装采用这种方法,以寻求高性能和可用性。
专用服务器和 Rails /-/metrics
端点都提供相同的数据,因此它们在功能上是等效的,仅在性能特征上有所不同。
要启用专用服务器:
- 启用 Prometheus。
-
编辑
/etc/gitlab/gitlab.rb
以添加(或查找并取消注释)以下行。确保puma['exporter_enabled']
设置为true
:puma['exporter_enabled'] = true puma['exporter_address'] = "127.0.0.1" puma['exporter_port'] = 8083
- 当使用极狐GitLab捆绑的 Prometheus 时,确保其
scrape_config
指向localhost:8083/metrics
。有关如何配置抓取器目标,请参考添加自定义抓取配置页面。对于外部 Prometheus 设置,请参考使用外部 Prometheus 服务器。 - 保存文件并重新配置极狐GitLab,以使更改生效。
现在可以从 localhost:8083/metrics
提供和抓取指标。
启用 HTTPS
{{< history >}}
- 引入于极狐GitLab 15.2。
{{< /history >}}
要通过 HTTPS 而不是 HTTP 提供指标,请在导出器设置中启用 TLS:
-
编辑
/etc/gitlab/gitlab.rb
以添加(或查找并取消注释)以下行:puma['exporter_tls_enabled'] = true puma['exporter_tls_cert_path'] = "/path/to/certificate.pem" puma['exporter_tls_key_path'] = "/path/to/private-key.pem"
-
保存文件并重新配置极狐GitLab,以使更改生效。
启用 TLS 后,使用与上述相同的 port
和 address
。指标服务器不能同时提供 HTTP 和 HTTPS。
故障排除
Docker 容器空间不足
当在 Docker 中运行极狐GitLab 时,您的容器可能会空间不足。如果您启用了某些增加空间消耗的功能,例如 Web 导出器,这种情况可能会发生。
为了解决此问题,更新您的 shm-size
。