Quando un endpoint delle metriche HTTPS richiede una chiave API e Prometheus deve usare un proxy in uscita, configura l'intestazione sulla richiesta di scrape stessa. Per una versione di Prometheus che supporta 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']

Il file contiene la chiave API di destinazione prevista e deve essere leggibile nell'ambiente di esecuzione di Prometheus. In un container, rendilo disponibile su quel percorso lato container.

http_headers inserisce X-API-Key sulla richiesta verso metrics.example. Attraverso un normale tunnel HTTPS CONNECT, quell'intestazione viaggia dentro il TLS di destinazione. L'intermediario fornisce la connettività e deve consentire il tunnel. Per un endpoint delle metriche raggiungibile pubblicamente dove sono ammessi intermediari pubblici, la lista di proxy HTTP offre candidati per proxy_url senza account; mantieni la chiave API sulla richiesta verso la destinazione.

proxy_connect_header ha un'altra destinazione: l'intermediario riceve quelle intestazioni al CONNECT. Inserirvi una chiave API di destinazione non la consegna come intestazione di richiesta HTTPS al server delle metriche.

Mantieni il nome host e il percorso reali delle metriche nella configurazione di scrape. Prometheus protegge anche le intestazioni che imposta da sé da sostituzioni arbitrarie, quindi per questa chiave API usa i campi per intestazioni personalizzate supportati.

Articoli correlati