GitLab
GitLab モニターには、この Splunk Observability Cloud インテグレーションを使用してください。メリット、インストール、設定、メトリクスを参照してください
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 エクスポータが付属しています。Collector がエンドポイントにアクセスするには、コンテナまたはホストの IP アドレスを許可する必要があります。詳細については、GitLab Docs の
IP allowlistドキュメントを参照してください。 -
GitLab Webservice:GitLabのRailsウェブサーバーにポッドごとに2つのWebserviceワーカーを提供します。
-
GitLab Workhorse:低速の HTTP 要求を処理する GitLab サービスです。Workhorse には組み込みの Prometheus エクスポータがあり、このモニターはメトリクスを収集するために使用します。
このモニタータイプは、GitLabバージョン9.3以降を使用するKubernetes、Linux、Windowsで利用可能です。
メリット
インテグレーションを設定すると、これらの機能にアクセスできるようになります:
-
メトリクスを表示します。独自のカスタムダッシュボードを作成することができ、ほとんどのモニターは組み込みのダッシュボードも提供しています。ダッシュボードの詳細については、「Splunk Observability Cloudでダッシュボードを表示する」を参照してください。
-
Infrastructure Monitoring に表示される環境内の物理サーバー、仮想マシン、AWS インスタンス、およびその他リソースのデータ駆動型の視覚化を表示します。ナビゲータの詳細については、「Splunk Infrastructure Monitoring でナビゲーターを使用する」を参照してください。
-
Metric Finder へアクセスし、モニターから送信されたメトリクスを検索します。詳細は、「メトリクス・ファインダーとメタデータ・カタログを検索する」を参照してください。
インストール
このインテグレーションを導入するには、以下の手順に従ってください:
-
Splunk Distribution of the OpenTelemetry Collector をホストまたはコンテナプラットフォームにデプロイします:
-
[設定] セクションの説明に従ってインテグレーションを設定します。
-
Splunk Distribution of OpenTelemetry Collector を再起動します。
GitLabを設定してPrometheusエンドポイントを監視する
「Prometheus による GitLab の監視」の指示に従って、GitLab Prometheus エクスポータを設定し、メトリクス エンドポイント ターゲットを公開します。
以下のPrometheusエンドポイントターゲットが利用可能です:
|
モニタータイプ |
リファレンス |
デフォルトポート |
標準パス |
|---|---|---|---|
|
|
GitLab エクスポーター |
9168 |
/metrics |
|
|
Gitaly と Gitaly Cluster |
9236 |
/metrics |
|
|
GitLab Runner |
9252 |
/metrics |
|
|
GitLab SideKiq |
3807 |
/metrics |
|
|
GitLab Unicorn |
8080 |
/metrics |
|
|
GitLab Webservice |
8083 |
/metrics |
|
|
GitLab Workhorse |
9229 |
/metrics |
|
|
PrometheusでGitLabを監視する |
8060 |
/metrics |
|
|
ノードエクスポーター |
9100 |
/metrics |
|
|
PostgreSQLサーバーエクスポーター |
9187 |
/metrics |
|
|
PrometheusでGitLabを監視する |
9090 |
/metrics |
|
|
Redisエクスポーター |
9121 |
/metrics |
重要な注意事項
-
/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の実行によって消去されることに注意してください。
-
-
OpenTelemetry Collector のホストまたはDockerコンテナからのリクエストを受け付けるように、GitLab Prometheusエクスポーター、nginx、GitLab Runnerを設定する必要があります。
例
/etc/gitlab/gitlab.rb の以下の設定は、GitLab Postgres PrometheusエクスポーターがどのIPアドレスからでもポート 9187 でのネットワーク接続を許可するように設定します:
postgres_exporter['listen_address'] = '0.0.0.0:9187'
postgres_exporter['listen_address'] = ':9187'
ファイル /var/opt/gitlab/nginx/conf/nginx-status.conf は nginx を設定し、location /metrics ブロックはメトリクス関連の設定を示します。ステートメント 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 のインテグレーションを使用するには、以下の手順に従います:
-
Smart Agent レシーバーを設定ファイルに含めます。
-
レシーバーセクションおよびパイプラインセクションの両方で、Collector 構成にモニタータイプを追加します。
-
「Collector でSmart Agent モニターを使用する」を参照してください。
-
Smart Agent レシーバーの設定方法を参照してください。
-
一般的な構成オプションのリストについては、「モニターの共通設定」を参照してください。
-
Collector の詳細については、「はじめに:Collector を理解して使用する」を参照してください。
-
例
このインテグレーションを有効にするには、Collector構成に以下を追加します:
receivers:
smartagent/gitlab:
type: gitlab
... # Additional config
次に、監視したいサービスを設定ファイルの service.pipelines.metrics.receivers に追加します:
receivers:
smartagent/gitlab-sidekiq:
type: gitlab
host: gitlab-webservice-default.default
port: 3807
smartagent/gitlab-workhorse:
type: gitlab
host: gitlab-webservice-default.default
port: 9229
# ... Other sections
service:
pipelines:
metrics:
receivers:
- smartagent/gitlab-sidekiq
- smartagent/gitlab-workhorse
# ... Other sections
設定オプション
次の表に、このモニターの設定オプションを示します:
|
オプション |
必須 |
タイプ |
説明 |
|---|---|---|---|
|
|
いいえ |
| 読み取りと書き込みの両方の操作に対する HTTP タイムアウト時間。これは、 ParseDuration によって受け入れられる継続時間文字列デフォルト値は |
|
|
いいえ |
|
各リクエストで使用される Basic Auth ユーザー名 (ある場合)。 |
|
|
いいえ |
|
各リクエストで使用するBasic Authパスワード (ある場合)。 |
|
|
いいえ |
| true の場合、Collector は、プレーンな HTTP ではなく HTTPS を使用してサーバーに接続します。デフォルト値は |
|
|
いいえ |
| HTTP ヘッダー名と値のマップ。同じメッセージヘッダーの カンマ区切りの複数の値もサポートしています。 |
|
|
いいえ |
| useHTTPS が true で、このオプションも true の場合、エクスポータの TLS 証明書は検証されません。デフォルト値は |
|
|
いいえ |
| TLS証明書に署名したCA証明書へのパス。
|
|
|
いいえ |
|
TLSが必要な接続に使用するクライアントTLS証明書へのパス |
|
|
いいえ |
|
TLSが必要な接続に使用するクライアントTLSキーへのパス |
|
|
はい |
|
エクスポーターのホスト。デフォルトでは |
|
|
はい |
|
エクスポーターのポート |
|
|
いいえ |
| 認証にポッドサービスアカウントを使用します。デフォルト値は、
|
|
|
いいえ |
| エクスポーター・サーバー上のメトリクス・エンドポイントへのパス。通常は
|
|
|
いいえ |
| Prometheusエクスポーターから出力されるすべてのメトリクスを フィルタリングせずに送信します。このオプションは、Prometheus エクスポータモニターを直接使用する場合には、組み込みのフィルタリングがないため効果がなく、他のモニターに埋め込む場合にのみ効果があります。デフォルト値は |
メトリクス
このインテグレーションでは、以下のメトリクスを使用できます。
https://raw.githubusercontent.com/signalfx/splunk-otel-collector/main/internal/signalfx-agent/pkg/monitors/gitlab/metadata.yaml
備考
-
Splunk Observability Cloud で利用可能なメトリクスタイプの詳細は、「メトリクスタイプ」を参照してください。
-
ホストベースのサブスクリプションプランでは、デフォルトのメトリクスは、ホスト、コンテナ、バンドルメトリクスなど、Splunk Observability Cloud のホストベースのサブスクリプションに含まれるメトリクスです。カスタムメトリクスはデフォルトでは提供されていないため、料金が発生する場合があります。詳細については、「メトリクスカテゴリ」を参照してください。
-
MTSベースのサブスクリプションプランでは、すべてのメトリクスがカスタムです。
-
メトリクスを追加するには、「その他のメトリクスの追加」で
extraMetricsの設定方法を参照してください。
トラブルシューティング
__ ___ ___ _ ______ _____________ _____ ________ ___ ___ ___ ____ __ ___ ____ ____ __ ______ _____________ ______ ___ ___ ___ ____ __ ___ _________ _____
_________ __ ______ _____________ _____ _________
-
______ _ ____ __ ___ ______ _______ _______
-
_______ ______ ________
_________ __ ___________ _________ ___ ____ _____ _____
-
___ _ ________ ___ ___ _______ _______ _________ _______ __ ______ ________
-
____ ___ ______ ______________ ____ _____ _____ _______ __ ___________ ____ __________ _________ ___ ______ _________ __________ __ _____ ___ ____ _______