Как разделить конфигурационные файлы Prometheus?

10

Прямо сейчас мы используем Prometheus для нашего мониторинга и у нас много настроек (наш основной конфигурационный файл prometheus.yml имеет длину более 1400 строк).

Я хотел бы разделить это на логические группировки (может быть, DEV / TEST / PROD?), Но я не могу найти какую-либо документацию о том, как использовать «include» (или подобное) в синтаксисе файла конфигурации Prometheus.

Кто-нибудь делал это с помощью своего конфигурационного файла Prometheus? Если да, то как ты это сделал?

srkiNZ84
источник
Как насчет сценария, объединяющего несколько файлов в один?
gf_
Да, я думаю, что это то, что я собираюсь сделать. Но в лучшем случае это «обходной путь». Я хотел иметь возможность создать небольшой конфигурационный файл, определяющий «имя_объекта», чтобы протестировать конфигурацию («разработка» очистки конфигов, я полагаю), а затем просто вызвать «перезагрузить», чтобы опробовать его.
srkiNZ84

Ответы:

8

Файл конфигурации Prometheus (и другие файлы конфигурации в экосистеме) явно не поддерживают какую-либо форму шаблонов. Вместо этого это остается на усмотрение вашей системы управления конфигурацией.

Кроме того, звучит немного необычно, что в вашем конфигурационном файле есть разделы dev / test / prod. Обычно а) у вас есть Prometheus для каждой среды, и б) основное различие между этими серверами Prometheus заключается в различном значении envметки на вашем компьютере external_labels.

Брайен-бразилия
источник
Разве это не нарушает идею «единого стекла»? Как бы мы могли сравнивать показатели DEV и PROD, если бы у нас было несколько экземпляров для каждой среды? Должны ли мы использовать федеративный Прометей для этого варианта использования?
srkiNZ84
Вариант использования: у нас есть отдельные кластеры DEV / TEST / PROD Kubernetes. Для каждого кластера мы используем «обнаружение сервисов», чтобы получить все метрики от объектов Service и Pod (контейнер).
srkiNZ84
1
У Прометея нет единой идеи в области стекла, которая не подходит ни для чего, кроме самых маленьких систем. Даже метрики самого Прометея слишком велики для одной стеклянной панели, это больше похоже на 4-5. Обычный подход заключается в использовании шаблонизаторов источников данных в Grafana, и вы можете сравнивать информационные панели бок о бок.
Брайан-
0

Вы можете перенести свои цели в другие файлы или использовать какой-либо инструмент обнаружения служб, например 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__
    (...)

пример отдельного 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
Иванов
источник