GitLab-Exporterチャートの使い方

gitlab-exporter サブチャートは GitLab アプリケーション固有のデータに対する Prometheus メトリクスを提供します。PostgreSQLに直接アクセスしてクエリを実行し、CIビルドやプルミラーなどのデータを取得します。さらに、Sidekiq API を使って Redis とやり取りし、Sidekiq キューの状態 (ジョブ数など) に関するさまざまなメトリクスを収集します。

要件

このチャートはRedisとPostgreSQLのサービスに依存しています。RedisとPostgreSQLは完全なGitLabチャートの一部であるか、このチャートがデプロイされているKubernetesクラスターから到達可能な外部サービスとして提供されています。

設定

gitlab-exporter Chart の設定は以下の通りです:グローバル設定と チャート設定

インストールのコマンドラインオプション

以下の表は、--set フラグを使用して、helm install コマンドに供給できるすべての可能なチャート設定を示しています。

パラメータデフォルト説明
annotations ポッド注釈
common.labels{}このChartで作成されたすべてのオブジェクトに適用される補助ラベル。
podLabels ポッドラベルの補足。セレクタには使用されません。
common.labels このChartで作成されたすべてのオブジェクトに適用される補助ラベル。
deployment.strategy{}デプロイによって使用されるアップデート戦略を設定できます。
enabledtrueGitLab Exporter 有効フラグ
extraContainers 追加コンテナのリスト
extraInitContainers 追加コンテナのリスト
extraVolumeMounts 追加ボリュームマウントのリスト
extraVolumes 作成する追加ボリュームのリスト
extraEnv 公開する追加環境変数のリスト
extraEnvFrom 公開する他のデータソースの追加環境変数のリスト
image.pullPolicyIfNotPresentGitLabイメージプルポリシー
image.pullSecrets 画像リポジトリのシークレット
image.repositoryregistry.gitlab.com/gitlab-org/build/cng/gitlab-exporterGitLab Exporter イメージリポジトリ
image.tag イメージタグ
init.image.repository initContainer 画像
init.image.tag initContainer画像タグ
init.containerSecurityContext initContainer コンテナ固有のsecurityContext
metrics.enabledtrueメトリクスエンドポイントをスクレイピングのために利用可能にする場合
metrics.port9168メトリクス・エンドポイント・ポート
metrics.path/metricsメトリクスエンドポイントパス
metrics.serviceMonitor.enabledfalsePrometheus Operatorがメトリクスのスクレイピングを管理できるようにServiceMonitorを作成する必要がある場合、これを有効にすると、prometheus.io スクレイピング注釈が削除されることに注意してください。
metrics.serviceMonitor.additionalLabels{}ServiceMonitorに追加するラベル
metrics.serviceMonitor.endpointConfig{}ServiceMonitorの追加エンドポイント設定
metrics.annotations  廃止明示的なメトリクス・アノテーションを設定します。テンプレート・コンテンツに置き換えられました。
priorityClassName ポッドに割り当てられる優先度クラス
resources.requests.cpu75mGitLab Exporterの最小CPU
resources.requests.memory100MGitLab Exporterの最小メモリ
serviceLabels{}補足サービスラベル
service.externalPort9168GitLab Exporterの公開ポート
service.internalPort9168GitLab Exporter内部ポート
service.namegitlab-exporterGitLab Exporterサービス名
service.typeClusterIPGitLab Exporterサービスタイプ
securityContext.fsGroup1000ポッドを起動するグループID
securityContext.runAsUser1000ポッドを起動するユーザーID
securityContext.fsGroupChangePolicy ボリュームの所有権と権限を変更するためのポリシー (Kubernetes 1.23 が必要)
containerSecurityContext コンテナが起動するコンテナsecurityContext をオーバーライドします。
containerSecurityContext.runAsUser1000コンテナが起動される特定のセキュリティコンテキストを上書きできるようにします。
tolerations[]ポッド割り当て用のトレラベル
psql.port PostgreSQL サーバのポートを設定します。よりも優先されます。global.psql.port
tls.enabledfalseGitLab Exporter TLSを有効にします。
tls.secretName{Release.Name}-gitlab-exporter-tlsGitLab ExporterのTLSシークレット。KubernetesのTLSシークレットを指す必要があります。

Chart設定例

extraEnv

extraEnv を使用すると、ポッド内のすべてのコンテナで追加の環境変数を公開できます。

以下は、extraEnv の使用例です:

extraEnv:
  SOME_KEY: some_value
  SOME_OTHER_KEY: some_other_value

コンテナを起動すると、環境変数が公開されていることが確認できます:

env | grep SOME
SOME_KEY=some_value
SOME_OTHER_KEY=some_other_value

追加EnvFrom

extraEnvFrom を使用すると、ポッド内のすべてのコンテナで、他のデータソースからの追加の環境変数を公開することができます。

以下は、extraEnvFrom の使用例です:

extraEnvFrom:
  MY_NODE_NAME:
    fieldRef:
      fieldPath: spec.nodeName
  MY_CPU_REQUEST:
    resourceFieldRef:
      containerName: test-container
      resource: requests.cpu
  SECRET_THING:
    secretKeyRef:
      name: special-secret
      key: special_token
      # optional: boolean
  CONFIG_STRING:
    configMapKeyRef:
      name: useful-config
      key: some-string
      # optional: boolean

画像.pullSecrets

pullSecrets を使用すると、非公開レジストリで認証してポッドのイメージをプルできるようになります。

非公開レジストリとその認証方法の詳細については、Kubernetesのドキュメントを参照してください。

以下は、pullSecrets の使用例です:

image:
  repository: my.image.repository
  pullPolicy: Always
  pullSecrets:
  - name: my-secret-name
  - name: my-secondary-secret-name

注釈

annotations を使うと、GitLab Exporterのポッドにアノテーションを追加することができます。例えば

annotations:
  kubernetes.io/example-annotation: annotation-value

グローバル設定

私たちのChartには共通のグローバル設定があります。GitLabやレジストリのホスト名など、共通の設定オプションについてはGlobals Documentationをご覧ください。

チャート設定

以下の値はGitLab Exporterポッドの設定に使用されます。

メトリクス.enabled

デフォルトでは、ポッドは/metrics でメトリクス・エンドポイントを公開します。メトリクスを有効にすると、各ポッドにアノテーションが追加され、Prometheusサーバーが公開されたメトリクスを検出してスクレイピングできるようになります。