Come dividere i file di configurazione di Prometheus?


10

In questo momento stiamo usando Prometheus per il nostro monitoraggio e abbiamo molte configurazioni (il nostro file di configurazione principale prometheus.yml ha una lunghezza di oltre 1400 righe).

Vorrei dividerlo in raggruppamenti logici (forse DEV / TEST / PROD?) Ma non riesco a trovare alcuna documentazione su come usare "include" (o simile) nella sintassi del file di configurazione di Prometheus.

Qualcuno ha fatto questo con il proprio file di configurazione di Prometheus? Se è così, come avete fatto?


Che dire di uno script che unisce più file in uno?
gf_

Sì, penso che sia quello che dovrò fare. Ma nel migliore dei casi si tratta di una "soluzione alternativa". Volevo essere in grado di creare un piccolo file di configurazione, definendo un "job_name" per testare la configurazione ("sviluppo" delle configurazioni di scraping, suppongo) e quindi chiamare "ricaricare" per provarlo.
srkiNZ84,

Risposte:


8

Il file di configurazione di Prometheus (e altri file di configurazione nell'ecosistema) non supportano esplicitamente alcuna forma di modello. Invece questo è lasciato al tuo sistema di gestione della configurazione da gestire.

Inoltre, sembra un po 'insolito che tu abbia sezioni dev / test / prod nel tuo file di configurazione. Di solito a) avresti un Prometeo per ambiente eb) la differenza principale tra questi server Prometheus sarebbe un valore diverso per l' envetichetta nel tuo external_labels.


Questo non viola l'idea del "singolo pannello di vetro"? Come potremmo confrontare i parametri DEV con PROD se avessimo istanze separate per ambiente? Dovremmo usare Prometeo federato per questo caso d'uso?
srkiNZ84,

Il caso d'uso è che abbiamo cluster Kubernetes DEV / TEST / PROD separati. Per ogni cluster utilizziamo la "rilevazione del servizio" per ottenere tutte le metriche dagli oggetti Servizio e Pod (contenitore).
srkiNZ84,

1
Prometheus non ha un singolo riquadro di idea di vetro, che non si adatta bene a nulla oltre al più piccolo dei sistemi. Anche la metrica di Prometeo stesso è troppo grande per un singolo pannello di vetro, è più simile a 4-5. L'approccio usuale sarebbe quello di utilizzare il template dell'origine dati in Grafana e puoi confrontare i dashboard fianco a fianco.
brian-brasile,

0

È possibile scaricare i target su file diversi o utilizzare alcuni strumenti di rilevamento del servizio come consul.

  - job_name: yyy
    metrics_path: /probe
    scrape_interval: 10s
    scheme: https
    params:
      module:
        - http_2xx_LL
    static_configs:
      - targets: null
    file_sd_configs:
      - files:
          - prod-targets.yml
          - prod-misc-targets.yml
          - preprod-targets.yml
          - dev1-targets.yml
          - dev2-targets.yml
          - lab2-targets.yml
          - lab3-targets.yml
          - lab1-targets.yml
    relabel_configs:
      - source_labels:
          - __address__
    (...)

esempio di un singolo YML

- targets:
    - https://example0.example.com:8443/studio/
    - https://example1.example.com:8443/studio/
    - https://example2.example.com:8443/studio/
    - https://example3.example.com:8443/studio/
    - https://example4.example.com:8443/studio/
    - https://example5.example.com:8443/studio/
    - https://example.example.com/studio/
  labels:
    service: Studio
    env: Prod
    team: Nullmean
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.