Quando um endpoint de métricas HTTPS exige uma chave de API e o Prometheus precisa usar um proxy de saída, configure o cabeçalho na própria requisição de scrape. Para uma versão do Prometheus que suporta 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']

O arquivo contém a chave de API de destino pretendida e deve ser legível no ambiente de execução do Prometheus. Num contêiner, disponibilize-a nesse caminho do lado do contêiner.

http_headers coloca X-API-Key na requisição para metrics.example. Através de um túnel HTTPS CONNECT normal, esse cabeçalho viaja dentro do TLS do destino. O intermediário fornece a conectividade e deve permitir o túnel. Para um endpoint de métricas acessível publicamente onde intermediários públicos são permitidos, a lista de proxies HTTP oferece candidatos para proxy_url sem conta; mantenha a chave de API na requisição de destino.

proxy_connect_header tem outro destino: o intermediário recebe esses cabeçalhos no CONNECT. Colocar uma chave de API de destino ali não a entrega como cabeçalho de requisição HTTPS ao servidor de métricas.

Mantenha o nome de host e o caminho reais das métricas na configuração de scrape. O Prometheus também protege os cabeçalhos que ele mesmo define contra substituições arbitrárias, então use os campos de cabeçalho personalizado suportados para esta chave de API.

Artigos relacionados