Как использовать федерацию для сбора метрик Prometheus из нескольких экземпляров Prometheus (каждый из которых использует instance = localhost: 9090)

У нас есть несколько экземпляров Prometheus, работающих в центрах обработки данных (я буду называть их экземплярами DC Prometheus), и один дополнительный экземпляр Prometheus (назовем его «основным» в следующем тексте), где мы собираем метрики из экземпляров DC Prometheus с помощью используя функцию федерации.

Главный Prometheus извлекает значения {job = 'prometheus'} из себя, но также и из экземпляров DC Prometheus (каждое извлечение с localhost: 9090).

Проблема в том, что Main prometheus жалуется на вышедшие из строя образцы:

ПРЕДУПРЕЖДЕНИЕ [1585] Ошибка при загрузке образцов с нарушением порядка numDropped = 369 source = target.go: 475 target = dc1-prometheus: 443

Я обнаружил, что это из-за включения {job="prometheus"} в параметр 'match []'.

Я пытаюсь решить эту проблему путем переназначения ярлыка, но когда я пытаюсь использовать один DC Prometheus и постоянную замену, я не могу заставить его работать (я все еще получаю ошибку образцов вне порядка), и я не Даже не знаю, что использовать в качестве замены при использовании нескольких мишеней.

  - job_name: 'federate'
    scrape_interval: 15s

    honor_labels: true
    metrics_path: '/prometheus/federate'
    scheme: 'https'

    params:
      'match[]':
        - '{job="some-jobs-here..."}'
        - '{job="prometheus"}'

    relabel_configs:
    - source_labels: ['instance']
      target_label: 'instance'
      regex: 'localhost:9090'
      replacement: '??' # I've tried with 'dc1-prometheus:9090' and single target only.. no luck

    target_groups:
      - targets:
        - 'dc1-prometheus'
        - 'dc2-prometheus'
        - 'dc3-prometheus'

Мой вопрос в том, как использовать relabel_configs, чтобы избавиться от ошибки не по порядку. Я везде использую Прометей 0.17.


person Peter Štibraný    schedule 12.04.2016    source источник


Ответы (1)


Здесь вам нужно указать уникальный external_labels на каждом из серверов Prometheus центра обработки данных. Это заставит их добавить эти метки в /federate конечную точку и предотвратить конфликт временных рядов, с которыми вы столкнетесь.

В моем сообщении в блоге о федерации Прометея есть пример для такого случая: http://www.robustperception.io/scaling-and-federating-prometheus/

(Я должен добавить, что relabel_configs здесь вам не поможет, так как это меняет только целевые метки. metric_relabel_configs меняет то, что возвращается из очистки. См. http://www.robustperception.io/life-of-a-label/)

person brian-brazil    schedule 12.04.2016
comment
Большое тебе спасибо. Выглядит многообещающе, я попробую! - person Peter Štibraný; 12.04.2016