Docs » Splunk Observability Cloud でサポートされているインテグレーション » GitLabのアプリケーション・レシーバーを設定する » GitLab

GitLab 🔗

Splunk Distribution of OpenTelemetry Collector は、Smart Agent レシーバー を GitLab モニタータイプで使用して GitLab を監視します。

GitLabにはPrometheusエクスポーターがバンドルされており、GitLab自身とGitLabが依存するバンドル・ソフトウェアのパフォーマンス・メトリクスをエクスポートするように設定することができます。これらのエクスポーターは、このモニタータイプによってスクレイピングされるエンドポイントでPrometheusメトリクスを公開します。

このインテグレーションにより、以下をモニターすることができます:

  • GitalyとGitaly Cluster:Gitalyは、GitLabによって行われるすべてのgitコールを処理するためのgitリモートプロシージャコール(RPC)サービスです。このモニターはGitlab Gitaly git RPCサーバーをスクレイピングします。

  • GitLab Runner:GitLab RunnerはPrometheusを使って監視することができます。詳しくはGitLab DocsのGitLab Runnerドキュメントを参照してください。

  • GitLab Sidekiq:Gitlab Sidekiq Prometheus Exporterをスクレイピングします。

  • GitLab Unicornサーバー:Prometheus エクスポーターが付属しています。コレクタがエンドポイントにアクセスするためには、コンテナやホストのIPアドレスを許可する必要があります。詳細はGitLab Docsの IP allowlist ドキュメントを参照してください。

  • GitLab Workhorse: 低速なHTTPリクエストを処理するGitLabサービス。Workhorseには組み込みのPrometheusエクスポーターがあり、このモニターはメトリクスを収集するために使用します。

このモニタータイプは、GitLabバージョン9.3以降を使用するKubernetes、Linux、Windowsで利用可能です。

メリット 🔗

インテグレーションを設定すると、これらの機能にアクセスできるようになります:

インストール 🔗

このインテグレーションを導入するには、以下の手順に従ってください:

  1. Splunk Distribution of the OpenTelemetry Collector をホストまたはコンテナプラットフォームにデプロイします:

  2. [設定] セクションの説明に従ってインテグレーションを設定します。

  3. Splunk Distribution of OpenTelemetry Collector を再起動します。

GitLabの設定 🔗

Monitoring GitLab with Prometheus の指示に従って、GitLab Prometheus エクスポーターを設定し、メトリクスエンドポイントターゲットを公開します。

/etc/gitlab/gitlab.rb を編集してGitLabを設定した場合、変更を有効にするにはコマンド gitlab-ctl reconfigure を実行する必要があります。

ファイル /var/opt/gitlab/nginx/conf/nginx-status.conf を編集して nginx を設定する場合は、コマンド gitlab-ctl restart を実行する必要があります。特にコンフィギュレーションファイル /var/opt/gitlab/nginx/conf/nginx-status.conf への変更は、gitlab-ctl reconfigure が元のコンフィギュレーションファイルを復元するため、gitlab-ctl reconfigure の実行によって消去されることに注意してください。

次の表は、Prometheus のエンドポイントターゲットの一部と、それぞれの設定ページへのリンクを示しています。

モニタータイプ

リファレンス

デフォルトポート

標準パス

gitlab-exporter

GitLab エクスポーター

9168

/metrics

gitlab-gitaly

Gitaly と Gitaly Cluster

9236

/metrics

gitlab-runner

GitLab Runner

9252

/metrics

gitlab-sidekiq

GitLab SideKiq

8082

/metrics

gitlab-unicorn

GitLab Unicorn

8080

/-/metrics

gitlab-workhorse

GitLab Workhorse

9229

/metrics

prometheus/nginx-vts

PrometheusでGitLabを監視する

8060

/metrics

prometheus/node

ノードエクスポーター

9100

/metrics

prometheus/postgres

PostgreSQLサーバーエクスポーター

9187

/metrics

prometheus/prometheus

PrometheusでGitLabを監視する

9090

/metrics

prometheus/redis

Redisエクスポーター

9121

/metrics

GitLab Prometheus エクスポーター、nginx、GitLab Runner は、OpenTelemetry Collector のホストまたは Docker コンテナからのリクエストを受け付けるように設定する必要があります。例えば、/etc/gitlab/gitlab.rb の以下の設定は、GitLab Postgres Prometheus exporter がどの IP アドレスからでもポート 9187 でのネットワーク接続を許可するように設定します:

postgres_exporter['listen_address'] = '0.0.0.0:9187'

または

postgres_exporter['listen_address'] = ':9187'

ファイル /var/opt/gitlab/nginx/conf/nginx-status.conf からの次の抜粋は、メトリクス関連のコンフィギュレーションのための location /metrics ブロックを示しています。このファイルはnginxを設定します。ステートメント allow 172.17.0.0/16;172.17.0.0/16 IP 範囲でのネットワーク接続を許可します。OpenTelemetry Collector に関連する IP アドレスがその IP 範囲にあることが前提です。

server {
    ...
    location /metrics {
    ...
    allow 172.17.0.0/16;
    deny all;
    }
}

次の行はファイル /etc/gitlab-runner/config.toml のグローバルセクションの一部です。このファイルはGitLab Runnerを設定します。以下の文は、GitLab RunnerのPrometheusメトリクスHTTPサーバーが、どのIPアドレスからでもポート 9252 でのネットワーク接続を許可するように設定します:

listen_address = "0.0.0.0:9252"
...

設定 🔗

Smart Agent モニターとCollector のインテグレーションを使用するには、以下の手順に従います:

  1. Smart Agent レシーバーを設定ファイルに含めます。

  2. レシーバーセクションおよびパイプラインセクションの両方で、Collector 構成にモニタータイプを追加します。

🔗

このインテグレーションを有効にするには、Collector構成に以下を追加します:

receivers:
  smartagent/gitlab:
    type: gitlab
    ... # Additional config

次に、監視したいサービスを設定ファイルの service.pipelines.metrics.receivers に追加します:

receivers:
  smartagent/gitlab-sidekiq:
    type: gitlab
    host: localhost
    port: 8082
  smartagent/gitlab-workhorse:
    type: gitlab
    host: localhost
    port: 9229

# ... Other sections

service:
  pipelines:
    metrics:
      receivers:
        - smartagent/gitlab-sidekiq
        - smartagent/gitlab-workhorse

# ... Other sections

設定オプション 🔗

次の表に、このモニターの設定オプションを示します:

オプション

必須

タイプ

説明

httpTimeout

いいえ

int64

読み込みと書き込みの両方のHTTPタイムアウト時間。これは

ParseDuration によって受け入れられる継続時間文字列デフォルト値は 10s です。

username

いいえ

string

各リクエストで使用される Basic Auth ユーザー名 (ある場合)。

password

いいえ

string

各リクエストで使用するBasic Authパスワード (ある場合)。

useHTTPS

いいえ

bool

true の場合、コレクタは次を使用してサーバーに接続します

プレーン HTTP ではなく HTTPS。デフォルト値は false です。

httpHeaders

いいえ

map of strings

HTTP ヘッダー名と値のマップ。カンマ区切りの複数

カンマ区切りの複数の値もサポートしています。

skipVerify

いいえ

bool

useHTTPStrue で、このオプションも true の場合、

エクスポーターのTLS証明書は検証されません。デフォルト値は false です。

caCertPath

いいえ

string

TLS証明書に署名したCA証明書へのパス。

skipVerifyfalse に設定されている場合は不要です。

clientCertPath

いいえ

string

TLSが必要な接続に使用するクライアントTLS証明書へのパス

clientKeyPath

いいえ

string

TLSが必要な接続に使用するクライアントTLSキーへのパス

host

はい

string

エクスポーターのホスト

port

はい

integer

エクスポーターのポート

useServiceAccount

いいえ

bool

認証にポッドサービスアカウントを使用します。デフォルト値は

false です。

metricPath

いいえ

string

エクスポーター・サーバー上のメトリクス・エンドポイントへのパス。通常は

/metrics で、これはデフォルト値です。

sendAllMetrics

いいえ

bool

Prometheusエクスポーターから出力されるすべてのメトリクスを

フィルターリングなし。このオプションは、Prometheusエクスポーターモニターを直接使用する場合には、組み込みのフィルターリングがないため効果がありません。デフォルト値は false です。

メトリクス 🔗

このインテグレーションでは、以下のメトリクスを使用できます。

備考 🔗

  • To learn more about the available in Splunk Observability Cloud see メトリクスタイプ

  • In host-based subscription plans, default metrics are those metrics included in host-based subscriptions in Splunk Observability Cloud, such as host, container, or bundled metrics. Custom metrics are not provided by default and might be subject to charges. See メトリクスカテゴリ for more information.

  • MTSベースのサブスクリプションプランでは、すべてのメトリクスがカスタムです。

  • メトリクスを追加するには、その他のメトリクスの追加extraMetrics の設定方法を参照してください。

トラブルシューティング 🔗

Splunk Observability Cloudをご利用のお客様で、Splunk Observability Cloudでデータを確認できない場合は、以下の方法でサポートを受けることができます。

Splunk Observability Cloudをご利用のお客様

見込み客および無料トライアルユーザー様

  • Splunk Answers のコミュニティサポートで質問し、回答を得る

  • Splunk #observability ユーザーグループの Slack チャンネルに参加して、世界中の顧客、パートナー、Splunk 社員とのコミュニケーションを図る。参加するには、Get Started with Splunk Community マニュアルの チャットグループ を参照してください。

This page was last updated on 2024年05月29日.