Ketika endpoint metrik HTTPS memerlukan kunci API dan Prometheus harus memakai proxy penerus, atur header pada permintaan scrape itu sendiri. Untuk versi Prometheus yang mendukung 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']

File tersebut berisi kunci API target yang dimaksud dan harus dapat dibaca di lingkungan eksekusi Prometheus. Di dalam kontainer, sediakan pada jalur sisi kontainer itu.

http_headers menempatkan X-API-Key pada permintaan ke metrics.example. Melalui terowongan HTTPS CONNECT biasa, header itu berjalan di dalam TLS tujuan. Perantara menyediakan konektivitas dan harus mengizinkan terowongan. Untuk endpoint metrik yang dapat dijangkau publik dan mengizinkan perantara publik, daftar proxy HTTP menyediakan kandidat proxy_url tanpa akun; pertahankan kunci API pada permintaan tujuan.

proxy_connect_header memiliki tujuan lain: perantara menerima header tersebut saat CONNECT. Menempatkan kunci API target di sana tidak mengantarkannya sebagai header permintaan HTTPS ke server metrik.

Pertahankan nama host dan jalur metrik yang sebenarnya di konfigurasi scrape. Prometheus juga melindungi header yang ditetapkannya sendiri dari penimpaan sembarangan, jadi gunakan kolom header khusus yang didukung untuk kunci API ini.

Artikel terkait