ウェブエクスポーター(専用メトリクスサーバー)

GitLabをPrometheusで監視する際、GitLabは様々なコレクタを実行し、アプリケーションの使用状況、負荷、パフォーマンスに関するデータをサンプリングします。GitLabは1つ以上のPrometheus Exporterを実行することで、このデータをPrometheusスクレイパーに提供することができます。PrometheusエクスポーターはHTTPサーバーで、メトリクスデータをPrometheusスクレイパーが理解できるフォーマットにシリアライズします。

note
このページでは、Webアプリケーション・メトリクスについて説明します。バックグラウンド・ジョブのメトリクスをエクスポートするには、Sidekiqメトリクス・サーバーの設定方法をご覧ください。

Sidekiqでは、Webアプリケーション・メトリクスをエクスポートできる2つのメカニズムを提供しています:

  • メインのRailsアプリケーションを通して。これは、私たちが使用しているアプリケーションサーバーであるPumaが、独自の/-/metrics エンドポイント経由でメトリクスデータを利用できるようにすることを意味します。これはデフォルトで、GitLab Metricsで説明されています。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_configlocalhost:8083/metrics を指していることを確認してください。スクレイパーターゲットの設定方法については、カスタムスクレイプ設定の追加ページを参照してください。外部のPrometheusのセットアップについては、代わりに外部のPrometheusサーバーを使用するを参照してください。
  4. ファイルを保存し、変更を有効にするためにGitLab を再設定してください。

localhost:8083/metrics からメトリクスを提供したり、スクレイピングできるようになりました。

HTTPSの有効化

GitLab 15.2 で導入されました

HTTP ではなく HTTPS 経由でメトリクスを提供するには、Exporter 設定で 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の両方を同時に提供することはできません。