Если конечная точка метрик по HTTPS требует ключ API, а Prometheus должен использовать прямой прокси, задайте заголовок в самом запросе сканирования. Для версии Prometheus, поддерживающей http_headers:

scrape_configs:
  - job_name: secured_metrics
    scheme: https
    metrics_path: /metrics
    proxy_url: http://proxy.example:8080
    http_headers:
      X-API-Key:
        files:
          - /etc/prometheus/secrets/metrics-api-key
    static_configs:
      - targets: ['metrics.example:443']

Файл содержит нужный ключ API цели и должен быть доступен для чтения в среде выполнения Prometheus. В контейнере разместите его по этому пути на стороне контейнера.

http_headers добавляет X-API-Key в запрос к metrics.example. Через обычный туннель HTTPS CONNECT этот заголовок передаётся внутри TLS конечного узла. Посредник обеспечивает соединение и должен разрешать туннель. Для общедоступной конечной точки метрик, где разрешены публичные посредники, список HTTP-прокси предлагает кандидатов для proxy_url без учётной записи; храните ключ API в запросе к цели.

У proxy_connect_header другое назначение: посредник получает эти заголовки при CONNECT. Если поместить туда ключ API цели, он не будет передан серверу метрик как заголовок запроса HTTPS.

Сохраняйте фактические имя хоста и путь метрик в конфигурации сканирования. Prometheus также защищает собственные заголовки от произвольного переопределения, поэтому для этого ключа API используйте поддерживаемые поля пользовательских заголовков.

Похожие статьи