使用 GitLab-Exporter chart

gitlab-exporter 子 chart 为 GitLab 应用程序特定数据提供 Prometheus 指标。其直接与 PostgreSQL 通信,执行查询检索 CI 构建、拉取镜像等的数据。此外,它使用 Sidekiq API, 该 API 与 Redis 通信,收集有关 Sidekiq 队列状态的不同指标(例如作业数量)。

要求

此 chart 依赖于 Redis 和 PostgreSQL 服务,可以作为完整 GitLab chart 的一部分,或者作为或者作为从此 chart 部署到 Kubernetes 集群访问的外部服务。

配置

gitlab-exporter chart chart 配置如下:全局设置chart 设置

安装命令行选项

下表包含可以使用 --set 标志提供给 helm install 命令的所有可能的 chart 配置。

参数 默认值 说明
annotations   Pod annotations
common.labels {} 应用于此 chart 创建的所有对象的补充标签。
podLabels   补充 Pod 标签。 不会用于选择器。
common.labels   应用于此 chart 创建的所有对象的补充标签。
deployment.strategy {} 允许配置 deployment 使用的更新策略。如果未提供,使用集群默认值。
enabled true GitLab Exporter 启用标志
extraContainers   包含的附加容器列表
extraInitContainers   包含的 init containers 列表
extraVolumeMounts   要添加的附加挂载卷列表
extraVolumes   要创建的附加卷列表
extraEnv   要暴露的附加环境变量列表
image.pullPolicy IfNotPresent GitLab 镜像拉取策略
image.pullSecrets   用于镜像仓库的 Secrets
image.repository registry.gitlab.com/gitlab-org/build/cng/gitlab-exporter GitLab Exporter 镜像仓库
image.tag   镜像标签
init.image.repository   initContainer 镜像
init.image.tag   initContainer 镜像标签
metrics.enabled true 切换 Prometheus metrics exporter
metrics.port 9168 Prometheus metrics exporter 的监听端口
metrics.path /metrics 指标端点路径
metrics.serviceMonitor.enabled false 是否创建 ServiceMonitor 使 Prometheus Operator 能够管理指标抓取,请注意启用此功能会删除 prometheus.io 抓取注释
metrics.serviceMonitor.additionalLabels {} 要添加到 ServiceMonitor 的其它标签
metrics.serviceMonitor.endpointConfig {} ServiceMonitor 的附加端点配置
metrics.annotations   已废弃 设置明确的指标注释。替换为模板内容。
resources.requests.cpu 75m GitLab Exporter 最小 CPU
resources.requests.memory 100M GitLab Exporter 最小内存
serviceLabels {} 补充 service 标签
service.externalPort 9168 GitLab Exporter 对外暴露的端口
service.internalPort 9168 GitLab Exporter 内部端口
service.name gitlab-exporter GitLab Exporter service 名称
service.type ClusterIP GitLab Exporter service 类型
securityContext.fsGroup 1000 在其下启动 Pod 的 Group ID
securityContext.runAsUser 1000 在其下启动 Pod 的 User ID
tolerations [] 分配给 Pod 的容忍标签
psql.port   设置 PostgreSQL 服务器端口。优先于 global.psql.port

Chart 配置示例

image.pullSecrets

extraEnv

extraEnv 允许您在 Pod 的所有容器中暴露额外的环境变量。

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

pullSecrets 允许您通过私有从仓库的认证,并从中为 Pod 拉取镜像。

有关私有 registry 及其身份验证方法的详细信息,参考Kubernetes 文档

pullSecrets 示例如下:

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

annotations

annotations 允许您向 GitLab Exporter pods 添加 annotation。例如:

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

全局设置

我们在 chart 之间共享一些通用的全局设置。有关详细信息,请参见 Globals 文档

Chart 设置

以下值用于配置 GitLab Exporter pod。

metrics.enabled

默认情况下,pod 暴露一个在 /metrics 暴露一个 metrics 端点。当启用 metrics 时,向每个 pod 添加 annotation,使得 Prometheus 服务器可以发现并抓取暴露的 metrics。