Bagaimana cara membagi file konfigurasi Prometheus?

10

Saat ini kami menggunakan Prometheus untuk pemantauan kami dan kami memiliki banyak konfigurasi (file konfigurasi utama prometheus.yml kami memiliki panjang 1400+ baris).

Saya ingin membagi ini menjadi pengelompokan logis (mungkin DEV / TEST / PROD?) Tapi sepertinya saya tidak dapat menemukan dokumentasi bagaimana cara menggunakan "include" (atau serupa) dalam sintaks file confet Prometheus config.

Adakah yang melakukan ini dengan file konfigurasi Prometheus mereka? Jika demikian, bagaimana Anda melakukannya?

srkiNZ84
sumber
Bagaimana dengan skrip yang menggabungkan banyak file menjadi satu?
gf_
Ya, saya pikir itulah yang harus saya lakukan. Tapi yang terbaik ini adalah "solusi". Saya ingin dapat membuat file config kecil, mendefinisikan "job_name" untuk menguji config ("pengembangan" dari memo konfigurasi saya kira) dan kemudian panggil saja "reload" untuk mencobanya.
srkiNZ84

Jawaban:

8

File konfigurasi Prometheus (dan file konfigurasi lainnya dalam ekosistem) secara eksplisit tidak mendukung segala bentuk templating. Sebaliknya ini diserahkan ke sistem manajemen konfigurasi Anda untuk menangani.

Selain itu kedengarannya agak tidak biasa bahwa Anda memiliki bagian dev / test / prod di file konfigurasi Anda. Biasanya a) Anda akan memiliki Prometheus per lingkungan dan b) perbedaan utama antara server Prometheus ini akan menjadi nilai yang berbeda untuk envlabel di Anda external_labels.

brian-brazil
sumber
Bukankah ini melanggar ide "panel kaca tunggal"? Bagaimana kita bisa membandingkan metrik DEV dengan PROD jika kita memiliki instance terpisah per lingkungan? Haruskah kita menggunakan fedetated Prometheus untuk use case ini?
srkiNZ84
Kasus penggunaannya adalah kami memiliki kluster Kubernetes DEV / TEST / PROD terpisah. Untuk setiap kluster kami menggunakan "penemuan layanan" untuk mendapatkan semua metrik dari objek Layanan dan Pod (wadah).
srkiNZ84
1
Prometheus tidak memiliki panel kaca ide tunggal, yang tidak skala dengan baik untuk apa pun di luar sistem terkecil. Bahkan metrik Prometheus sendiri terlalu besar untuk satu panel kaca, lebih seperti 4-5. Pendekatan yang biasa dilakukan adalah dengan menggunakan sumber data templating di Grafana, dan Anda dapat membandingkan dasbor berdampingan.
brian-brazil
0

Anda dapat menurunkan target Anda ke file yang berbeda atau menggunakan beberapa alat penemuan layanan seperti 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__
    (...)

contoh YML individual

- 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
Ivanov
sumber