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 | {} | デプロイによって使用されるアップデート戦略を設定できます。 | 
| enabled | true | GitLab Exporter 有効フラグ | 
| extraContainers | 追加コンテナのリスト | |
| extraInitContainers | 追加コンテナのリスト | |
| extraVolumeMounts | 追加ボリュームマウントのリスト | |
| extraVolumes | 作成する追加ボリュームのリスト | |
| extraEnv | 公開する追加環境変数のリスト | |
| extraEnvFrom | 公開する他のデータソースの追加環境変数のリスト | |
| image.pullPolicy | IfNotPresent | GitLabイメージプルポリシー | 
| image.pullSecrets | 画像リポジトリのシークレット | |
| image.repository | registry.gitlab.com/gitlab-org/build/cng/gitlab-exporter | GitLab Exporter イメージリポジトリ | 
| image.tag | イメージタグ | |
| init.image.repository | initContainer 画像 | |
| init.image.tag | initContainer画像タグ | |
| init.containerSecurityContext | initContainer コンテナ固有のsecurityContext | |
| metrics.enabled | true | メトリクスエンドポイントをスクレイピングのために利用可能にする場合 | 
| metrics.port | 9168 | メトリクス・エンドポイント・ポート | 
| metrics.path | /metrics | メトリクスエンドポイントパス | 
| metrics.serviceMonitor.enabled | false | Prometheus Operatorがメトリクスのスクレイピングを管理できるようにServiceMonitorを作成する必要がある場合、これを有効にすると、 prometheus.ioスクレイピング注釈が削除されることに注意してください。 | 
| metrics.serviceMonitor.additionalLabels | {} | ServiceMonitorに追加するラベル | 
| metrics.serviceMonitor.endpointConfig | {} | ServiceMonitorの追加エンドポイント設定 | 
| metrics.annotations | 廃止明示的なメトリクス・アノテーションを設定します。テンプレート・コンテンツに置き換えられました。 | |
| priorityClassName | ポッドに割り当てられる優先度クラス。 | |
| resources.requests.cpu | 75m | GitLab Exporterの最小CPU | 
| resources.requests.memory | 100M | GitLab Exporterの最小メモリ | 
| serviceLabels | {} | 補足サービスラベル | 
| service.externalPort | 9168 | GitLab Exporterの公開ポート | 
| service.internalPort | 9168 | GitLab Exporter内部ポート | 
| service.name | gitlab-exporter | GitLab Exporterサービス名 | 
| service.type | ClusterIP | GitLab Exporterサービスタイプ | 
| securityContext.fsGroup | 1000 | ポッドを起動するグループID | 
| securityContext.runAsUser | 1000 | ポッドを起動するユーザーID | 
| securityContext.fsGroupChangePolicy | ボリュームの所有権と権限を変更するためのポリシー (Kubernetes 1.23 が必要) | |
| containerSecurityContext | コンテナが起動するコンテナsecurityContext をオーバーライドします。 | |
| containerSecurityContext.runAsUser | 1000 | コンテナが起動される特定のセキュリティコンテキストを上書きできるようにします。 | 
| tolerations | [] | ポッド割り当て用のトレラベル | 
| psql.port | PostgreSQL サーバのポートを設定します。よりも優先されます。 global.psql.port | |
| tls.enabled | false | GitLab Exporter TLSを有効にします。 | 
| tls.secretName | {Release.Name}-gitlab-exporter-tls | GitLab 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サーバーが公開されたメトリクスを検出してスクレイピングできるようになります。
