Знакомство с Прометеем и Графаной

Знакомство с Прометеем и Графаной

Prometheus — это система мониторинга с открытым исходным кодом, основанная на метриках. Собирает данные от служб и хостов, отправляя HTTP-запросы на конечные точки метрик. Затем он сохраняет результаты в базе данных временных рядов и делает их доступными для анализа и оповещения.

Зачем мониторить?

  • Он выдает предупреждения, когда что-то идет не так, желательно до того, как что-то пойдет не так. Чтобы кто-нибудь мог посмотреть.
  • Он обеспечивает понимание, которое позволяет проводить анализ, отладку и решение проблем.
  • Позволяет видеть тенденции/изменения с течением времени. Например, сколько сеансов активно в любой момент времени. Это помогает при проектных решениях и планировании емкости.

Отслеживание обычно связано с событиями. Событие может включать получение HTTP-запроса, отправку ответа, чтение с диска, вход пользователя в систему. Мониторинг системы может включать профилирование, ведение журнала, мониторинг, метрики, оповещение и визуализацию.

Черный ящик против отслеживания белого ящика

Мониторинг делится на две основные категории:

Блэкбок мониторинг

В мониторинге Blackbox мониторинг осуществляется на уровне приложения или хоста, если смотреть извне. Это может быть весьма ограничивающим.

Мониторинг белого ящика

Мониторинг белого ящика означает мониторинг внутреннего устройства службы. Это позволит выявить данные о состоянии и производительности внутренних компонентов.

Четыре золотых сигнала

Согласно Google, если вы можете измерить только четыре показателя вашей системы взаимодействия с клиентами, сосредоточьтесь на следующих четырех, называемых четырьмя золотыми сигналами:

№1. Задержка

Время, затраченное на выполнение запроса — успешное или неудачное. Важно отслеживать не только успешные запросы, но и неудачные.

№ 2. Трафик

Мера того, насколько высок спрос на вашу систему. Для веб-службы это обычно HTTP-запросы в секунду.

№3. Ошибки

Частота неудачных запросов.

№ 4. Насыщенность

Насколько полно ваше служение. Увеличение задержки часто является важным показателем насыщения. Производительность многих систем снижается задолго до достижения 100% загрузки.

Метрические типы Прометея

Метрики Prometheus бывают четырех основных типов:

№1. Прилавок

Значение счетчика всегда будет увеличиваться. Его никогда нельзя уменьшить, но можно вернуть к нулю. Поэтому, если скрейпинг не удался, это просто означает пропущенную точку данных. Суммарное увеличение будет доступно при следующем чтении. Примеры:

  • Общее количество полученных HTTP-запросов
  • Количество исключений.

№ 2. Отслеживать

Счетчик представляет собой снимок в любое время. Его можно увеличить или уменьшить. Если загрузка данных не удалась, вы потеряете образец; следующая загрузка может показывать другое значение: примеры дискового пространства, использование памяти.

№3. Гистограмма

Гистограмма отбирает наблюдения и подсчитывает их в настраиваемых сегментах. Они используются для таких вещей, как продолжительность запроса или размер ответа. Например, вы можете измерить продолжительность запроса для определенного HTTP-запроса. Гистограмма будет иметь набор сегментов, скажем, 1 мс, 10 мс и 25 мс. Вместо того, чтобы хранить каждую продолжительность для каждого запроса, Prometheus будет хранить частоту запросов, попадающих в определенное ведро.

№ 4. краткое содержание

Подобно наблюдениям за гистограммами, они обычно требуют длительности или величины отклика. Он предоставит общее количество наблюдений и сумму всех наблюдаемых значений, что позволит вам рассчитать среднее значение наблюдаемых значений. Например, за одну минуту у вас было три запроса, которые длились 2,3,4 секунды. Сумма будет равна 9, а число — 3. Задержка составит 3 секунды.

Компоненты экосистемы Prometheus

прометей сервер

Собирает метрики, сохраняет их и делает доступными для запросов, отправляет оповещения на основе собранных метрик.

Соскоб

Prometheus — это система, основанная на вытягивании. Чтобы получить метрики, Prometheus отправляет HTTP-запрос, называемый очисткой. Отправляет царапины на цели на основе своей конфигурации.

Каждая цель (статически определенная или обнаруженная динамически) очищается через регулярные промежутки времени (интервал очистки). Каждый цикл очистки считывает конечную точку HTTP /metrics, чтобы получить текущее состояние метрик клиента, и сохраняет значения в базе данных временных рядов Prometheus.

Существует несколько баз данных временных рядов для мониторинга решений, которые вы, возможно, захотите изучить.

Клиентские библиотеки

Чтобы отслеживать сервис, вам нужно добавить инструменты в свой код. Клиентские библиотеки доступны для всех популярных языков и сред выполнения. Используя эти библиотеки, после добавления нескольких строк кода ваш код может начать выдавать метрики. Это называется прямой аппаратурой. Эти библиотеки позволяют вам определять внутренние метрики и предоставлять их через конечную точку HTTP. Когда Prometheus извлекает конечную точку метрик HTTP, клиентская библиотека отправляет метрики на сервер.

Официальные клиентские библиотеки предлагаются Prometheus для Go, Java, Python и Ruby. Prometheus имеет открытую экосистему. Существуют также созданные сообществом клиентские библиотеки для C, PHP, Node.js, C#/.NET и многих других.

Экспортеры

Многие приложения предоставляют метрики в формате, отличном от Prometheus. Для них и для приложений, которыми вы не владеете или не имеете доступа к коду, вы не можете напрямую добавлять инструменты. Например, сервер MySQL, Kafka, JMKS, HAProki и NGINX. В этих сценариях используйте экспортеры.

Экспортер — это инструмент, который вы развертываете вместе с приложением, из которого вы хотите получать метрики. Экспортер выступает посредником между приложением и Prometheus. Он будет получать запросы от сервера Prometheus, собирать данные из журналов доступа, журналов ошибок приложений, преобразовывать их в правильный формат и, наконец, возвращаться на сервер Prometheus.

Некоторые из популярных экспортеров:

  • Windows — для метрик сервера Windows
  • Node — для метрик сервера Linux
  • Черный ящик — для показателей производительности DNS и веб-сайта.
  • JMKS — для метрик приложений на основе Java.

Как только приложения настроены или экспортеры установлены, вам нужно сообщить Prometheus, где они находятся. Это можно сделать с помощью статической конфигурации. В случае динамических сред этого сделать нельзя; поэтому используется обнаружение службы.

Оповещение

Предупреждение с Прометеем состоит из двух частей —

Правила предупреждений отправляют предупреждения в Alertmanager.

Затем Alertmanager управляет этими предупреждениями. Он отправляет уведомления, используя множество готовых интеграций, таких как электронная почта, Slack, Hipchat и PagerDuty. Alertmanager также может отключать или объединять уведомления, чтобы уменьшить количество уведомлений.

Вот руководство по мониторингу сервера Linux с помощью Prometheus и Dashboard.

Визуализация с помощью панели управления

Prometheus имеет ряд API, с помощью которых запросы PromKL могут создавать необработанные данные для визуализации.

Хотя Prometheus включает в себя механизм поиска выражений, который можно использовать для специальных запросов, лучшим доступным инструментом является Grafana. Grafana полностью интегрируется с Prometheus и может создавать самые разные информационные панели.

Вам нужно будет настроить Prometheus в качестве источника данных для Grafana.

Вы можете добавить информационные панели следующим образом:

  • Импорт панелей мониторинга, созданных сообществом
  • Построй свой собственный
  • Использование предопределенной панели управления.

Вот как выглядит предопределенная панель управления экспортером узлов:

В Grafana есть модуль worldPing, который позволяет отслеживать показатели производительности сайта и DNS по всему миру.

краткое содержание

У Prometheus очень мало требований. Его может быть довольно просто запустить, так как это один двоичный файл с файлом конфигурации. Он может обрабатывать тысячи целей и вводить миллионы выборок в секунду. Prometheus предназначен для мониторинга всей системы, здоровья, поведения системы.

Grafana — лучший доступный инструмент визуализации метрик, и Prometheus легко интегрируется с ним.

Поделиться в соцсетях