Новую цель Prometheus начинает собирать после правки конфига и его перечитывания.
Задание добавляется в список scrape_configs таким же блоком: job_name, под ним static_configs и targets. Отступы в YAML задают вложенность, и лишний пробел ломает весь файл. Поэтому после правки конфиг проверяют: promtool check config /etc/prometheus/prometheus.yml печатает SUCCESS или номер строки с ошибкой (в Вики).
Перечитать конфиг без перезапуска — sudo systemctl reload prometheus: systemd посылает Prometheus сигнал HUP, история и сбор остальных целей не прерываются. Сломанный конфиг reload не применяет: команда всё равно выходит с кодом 0, Prometheus работает по прежнему конфигу, а в его журнал уходит строка Error reloading config (в Вики).
В prometheus.yml цели задания node поменяли порт на 9101, promtool check config напечатал SUCCESS, reload не делали. Какой адрес у цели node покажет /api/v1/targets?
-
Работающий Prometheus знает только загруженный конфиг, нового файла он ещё не видел. Цель останется одна — со старым адресом.
-
promtool только проверяет файл: Prometheus читает конфиг при запуске и при reload. Загруженный конфиг показывает
/api/v1/status/config.
Без reload Prometheus работает по конфигу, загруженному при запуске, и собирает старый адрес. Новый он прочитает по sudo systemctl reload prometheus — если файл без ошибок.
После удачного reload новая цель появляется в /api/v1/targets сразу, а up у неё — после первого сбора, в пределах scrape_interval; здесь это 5 секунд. Если цели нужны свои метки — например, команда, которая за неё отвечает, — их ставит строка labels: рядом с targets: Prometheus добавит их ко всем рядам этой цели. Какой конфиг загружен сейчас, показывает /api/v1/status/config.
Подключи приложение к Prometheus
Учебное приложение labapp работает и отдаёт метрики по адресу 127.0.0.1:8000/metrics, но Prometheus их не собирает. Сделай так, чтобы собирал; задание назови labapp. Конфиг — /etc/prometheus/prometheus.yml.
Цели · 0 из 2
- Описать задание labapp в конфиге Prometheus ещё не выполнена
- Добиться, чтобы Prometheus собирал приложение ещё не выполнена