Благодаря этому комментарию на GitHub я разобрался. Эта диаграмма Helm принимает так много параметров конфигурации, что я пропустил ее при чтении документации.
Итак, оказывается, что эта диаграмма Helm принимает параметр конфигурации prometheus.prometheusSpec.containers
. Его описание в docs гласит: «Контейнеры позволяют внедрять дополнительные контейнеры. Это предназначено для добавления прокси аутентификации в модуль Prometheus». Но очевидно, что это не ограничивается прокси-сервером аутентификации, и вы можете передать здесь любой контейнер spe c, и он будет добавлен в Prometheus StatefulSet, созданный этой диаграммой Helm.
Вот пример конфигурации, которую я использовал. Некоторые ключевые моменты:
- Замените значения в угловых скобках вашими фактическими значениями.
- Не стесняйтесь удалять аргумент
--include
. Я добавил его, потому что nginx_http_requests_total
- это единственный Prometheus metri c, который я хочу отправить в Stackdriver. Отметьте Управление затратами для метрик, производных от Prometheus , чтобы получить более подробную информацию об этом. - Чтобы выяснить имя тома для использования в
volumeMounts
: - Перечислите StatefulSets в Пространство имен Оператора Прометея. Предполагая, что вы установили его в пространстве имен
monitoring
: kubectl get statefulsets -n monitoring
- Опишите Prometheus StatefulSet, предполагая, что его имя
prometheus-prom-operator-prometheus-o-prometheus
: kubectl describe statefulset prometheus-prom-operator-prometheus-o-prometheus -n monitoring
- В деталях этого StatefulSet найдите контейнер назван
prometheus
. Обратите внимание на значение, переданное ему в arg --storage.tsdb.path
- Найдите том, который смонтирован в этом контейнере по тому же пути. В моем случае это было
prometheus-prom-operator-prometheus-o-prometheus-db
, поэтому я установил тот же том и в свой контейнер Stackdriver sidecar.
prometheus:
prometheusSpec:
containers:
- name: stackdriver-sidecar
image: gcr.io/stackdriver-prometheus/stackdriver-prometheus-sidecar:0.7.5
imagePullPolicy: Always
args:
- --stackdriver.project-id=<GCP PROJECT ID>
- --prometheus.wal-directory=/prometheus/wal
- --stackdriver.kubernetes.location=<GCP PROJECT REGION>
- --stackdriver.kubernetes.cluster-name=<GKE CLUSTER NAME>
- --include=nginx_http_requests_total
ports:
- name: stackdriver
containerPort: 9091
volumeMounts:
- name: prometheus-prom-operator-prometheus-o-prometheus-db
mountPath: /prometheus
Сохраните этот yaml в файл. Предположим, вы сохранили его в prom-config.yaml
Теперь найдите имя выпуска, которое вы использовали для установки диаграммы Prometheus Operator Helm в своем кластере:
helm list
Предполагается, что имя выпуска prom-operator
, вы можете обновить этот выпуск в соответствии с конфигурацией, составленной выше, выполнив эту команду:
helm upgrade -f prom-config.yaml prom-operator stable/prometheus-operator
Надеюсь, вы нашли это полезным.