localhost:9090
Собирает метрики в определённом формате с хостов.
Файл prometheus.yml содержит простую конфигурацию для Prometheus.
Параметр | Назначение |
---|---|
scrape_interval | Как часто прометей будет забирать (скрапить) метрики с хостов |
scrape_timeout | Если скрапинг не завершится за время заданное в этом параметре, тогда случится timeout |
external_labels | Список меток и значений присваемых временным рядам при взаимодействии с Prometheus (remote storage, alertmanager, federation) |
evaluation_interval | Интервал вычисления alert\record rules |
scrape_configs | Конфигурация задач на сбор метрик с экспортеров или с помощью федерации |
В данной конфигурации Prometheus каждые 15 секунд будет собирать собственные метрики и метрики postgres отдаваемые через postgres_exporter
- Запусти сервисы командой docker-compose up -d
- Подключись к веб-интерфейсу прометея по адресу http://localhost:9090/graph
- Найди метрику pg_stat_user_tables_n_live_tup{relname="first_table"}. Значение будет 100000.
- Запусти скрипт delete.sh, подожди 15 секунд и проверь метрики ещё раз. Значение должно равняться 0.
- Запусти скрипт create.sh, подожди 15 секунд и увидишь, что значение метрики снова 100000.
localhost:9093
- Фильтрует входящие от prometheus предупреждения по заданным в конфигурации правилам
- Принимает решение куда отправить сообщение
- Позволяет обогатить уведомление дополнительной метаинформацией
Как работает:
- alerting.rules.yml содержит простое правило для отслеживания состояния postgres сервиса. При недоступности сервиса в течение 10 секунд prometheus отправит предупреждение в alertmanger.
Как проверить:
- Запусти все сервисы, а затем погаси сервис postgres
- Проверить админ интерфейс alertmanager
С отправкой в Slack
Как работает:
- В alerting.extended.rules.yml находятся правила:
- для уведомления потребителя о падении базы - PostgreInstanceDown.
- для уведомления команды backend при недоступности 50% контейнеров с базами данных.
- для уведомления команды backend при недоступности 100% контейнеров с базами данных.
- Alertmanager настроен так, чтобы сообщения для потребителей и для команды backend отправлялись в соответствующие каналы
Как проверить:
- Создай два url для slack api webhooks для двух разных каналов. Укажи по каналу для получателей в alertmanager.yml конфиге
- Запусти все сервисы, а затем отключай один или сразу оба контейнера с базами данных
- Через 30-60 секунд в slack придёт первое предупреждение.
Используется для визуализации метрик
Доступна по адресу localhost:3000 Данные для входа admin\admin
Данные примеры не отражают лучшие практики, а служат исключительно для демонстрации возможностей prometheus\alertmanager