Prometheus: impostare una chiave API di destinazione con http_headers e proxy_url
Combina http_headers dello scrape con proxy_url e mantieni le intestazioni API del server di origine separate dalle intestazioni CONNECT inviate all'intermediario.
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.