正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

Web exporter(専用メトリクスサーバー)

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed

メインアプリケーションサーバーとは別にメトリクスを収集することで、GitLabモニタリングの信頼性とパフォーマンスを向上させます。専用のメトリクスサーバーは、ユーザーリクエストからモニタリングトラフィックを分離し、メトリクスの収集がアプリケーションのパフォーマンスに影響を与えないようにします。

中規模から大規模なインストールの場合、この分離により、ピーク時の使用時に、より一貫性のあるデータ収集が可能になり、負荷の高い期間中に重要なメトリクスが見逃されるリスクを軽減できます。

GitLabメトリクス収集の仕組み

PrometheusでGitLabをモニタリングすると、GitLabは、使用状況、負荷、およびパフォーマンスに関連するデータをアプリケーションからサンプリングするさまざまなコレクターを実行します。GitLabは、1つまたは複数のPrometheus exporterを実行することにより、このデータをPrometheusスクレイプで使用できるようにします。Prometheus exporterは、Prometheusスクレイプが理解できる形式にメトリクスデータをシリアル化するHTTPサーバーです。

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

Webアプリケーションメトリクスをエクスポートするための2つのメカニズムを提供します:

  • main 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. Prometheusスクレイプを設定します:

  4. ファイルを保存して、GitLabを再設定し、変更を有効にします。

メトリクスは、localhost:8083/metricsから提供およびスクレイプできるようになりました。

HTTPSの有効化

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を同時に提供することはできません。

トラブルシューティング

Dockerコンテナの容量不足

DockerでGitLabを実行すると、コンテナの容量が不足する可能性があります。これは、Web exporterなど、容量消費量を増やす特定の機能を有効にした場合に発生する可能性があります。

この問題を回避するには、shm-sizeを更新します