{{< 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 端点都提供相同的数据,因此它们在功能上是等效的,仅在性能特征上有所不同。

要启用专用服务器:

  1. 启用 Prometheus
  2. 编辑 /etc/gitlab/gitlab.rb 以添加(或查找并取消注释)以下行。确保 puma['exporter_enabled'] 设置为 true

    puma['exporter_enabled'] = true
    puma['exporter_address'] = "127.0.0.1"
    puma['exporter_port'] = 8083
    
  3. 当使用极狐GitLab捆绑的 Prometheus 时,确保其 scrape_config 指向 localhost:8083/metrics。有关如何配置抓取器目标,请参考添加自定义抓取配置页面。对于外部 Prometheus 设置,请参考使用外部 Prometheus 服务器
  4. 保存文件并重新配置极狐GitLab,以使更改生效。

现在可以从 localhost:8083/metrics 提供和抓取指标。

启用 HTTPS

{{< history >}}

  • 引入于极狐GitLab 15.2。

{{< /history >}}

要通过 HTTPS 而不是 HTTP 提供指标,请在导出器设置中启用 TLS:

  1. 编辑 /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"
    
  2. 保存文件并重新配置极狐GitLab,以使更改生效。

启用 TLS 后,使用与上述相同的 portaddress。指标服务器不能同时提供 HTTP 和 HTTPS。

故障排除

Docker 容器空间不足

当在 Docker 中运行极狐GitLab 时,您的容器可能会空间不足。如果您启用了某些增加空间消耗的功能,例如 Web 导出器,这种情况可能会发生。

为了解决此问题,更新您的 shm-size