Мониторинг с Prometheus: как это работает | OTUS
🔥 Начинаем BLACK FRIDAY!
Максимальная скидка -25% на всё. Успейте начать обучение по самой выгодной цене.
Выбрать курс

Курсы

Программирование
iOS Developer. Basic
-25%
Python Developer. Professional
-25%
Разработчик на Spring Framework
-25%
Golang Developer. Professional
-25%
Python Developer. Basic
-25%
iOS Developer. Professional
-25%
Highload Architect
-25%
JavaScript Developer. Basic
-25%
Kotlin Backend Developer
-25%
JavaScript Developer. Professional
-25%
Android Developer. Basic
-25%
Unity Game Developer. Basic
-25%
Разработчик C#
-25%
Программист С Web-разработчик на Python Алгоритмы и структуры данных Framework Laravel PostgreSQL Reverse-Engineering. Professional CI/CD Vue.js разработчик VOIP инженер Программист 1С Flutter Mobile Developer Супер - интенсив по Kubernetes Symfony Framework Advanced Fullstack JavaScript developer Супер-интенсив "Azure для разработчиков"
Инфраструктура
Мониторинг и логирование: Zabbix, Prometheus, ELK
-25%
DevOps практики и инструменты
-25%
Архитектор сетей
-25%
Инфраструктурная платформа на основе Kubernetes
-25%
Супер-интенсив «ELK»
-16%
Супер-интенсив «IaC Ansible»
-16%
Супер-интенсив "SQL для анализа данных"
-16%
Базы данных Сетевой инженер AWS для разработчиков Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов Внедрение и работа в DevSecOps Администратор Linux. Виртуализация и кластеризация Нереляционные базы данных Супер-практикум по использованию и настройке GIT IoT-разработчик Супер-интенсив «СУБД в высоконагруженных системах»
Специализации Курсы в разработке Подготовительные курсы
+7 499 938-92-02

Мониторинг с Prometheus: как это работает

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

В настоящее время Prometheus — одна из наиболее быстрых и мощных систем, предназначенных для сбора аналитики. Архитектура системы состоит из отдельных компонентов, которые сообщаются друг с другом по протоколу http. По сути, всё устроено модно-молодёжно и с web-интерфейсами, плюс настраивается в yaml-конфигах.

prometheus_1-1801-71210a.svg

Если интересуют подробности, официальную документацию можно почитать здесь.

А, может, лучше использовать MySQL?

Может. Но только в том случае, если у вас небольшой проект, недостаточно знаний в аналитике и ваши данные обновляются нечасто. Во всех остальных случаях стандартные системы управления БД не обеспечат требуемой надёжности и производительности. Продвинутые штуки типа индексов и транзакций — это, конечно, круто, но они лишь замедлят работу БД, а ведь от неё требуется максимальная скорость и безотказность при записи метрик.

Именно поэтому для систем аналитики создана концепция time series database. Речь идёт о системе хранения простых значений, которые привязаны к определённым моментам времени. При реализации данного подхода у любой БД будут 2 измерения — сами значения и момент времени. В результате появляется возможность заранее планировать алгоритмы поиска и обработки значений, плюс выжимать максимум по надёжности и скорости работы. То есть пространство состояний, в которых может находиться данная СУБД, описано хорошо и является предельно малым.

Это неплохой подход к внутренней архитектуре БД, позволяющий быстро записывать много разных метрик, а также выполнять хитрые статистические запросы для получения этих метрик в динамике. А раз именно эти операции и являются единственным предназначением Prometheus, то и выполняются они предельно быстро. Вывод очевиден: раз обычные СУБД рассчитаны на расширенный спектр задач по обработке и записи данных, они всегда будут проигрывать по скорости, если речь идёт о работе с наборами метрик.

Интересная особенность Prometheus

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

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

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

На картинке ниже сервер Prometheus выполняет опрос целевых объектов и забирает из них метрики (определённые параметры данных объектов). В целях визуализации применяют разные инструменты, к примеру, Grafana:

Screenshot_1-1801-4f8233.png

Советы по использованию мониторинга Prometheus

Prometheus отлично справляется со сбором и бизнес-, и технических метрик. С бизнес-показателями всё просто и понятно — менеджеры ставят задачи, а разработчики реализуют расчёт показателей на сервере и «учат» Prometheus эти показатели собирать и записывать. Именно так реализуется, например, сбор статистических параметров типа выручки, количества заказов, оборота и т. п.

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

А ещё Prometheus очень дружит с Kubernetes — это весьма упрощает работу по сбору и анализу состояний кластера приложений.

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

Источник — https://mcs.mail.ru/blog/monitoring-s-pomoshchyu-prometheus-kak-eto-rabotaet.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
🎁 Максимальная скидка!
Черная пятница уже в OTUS! Скидка -25% на всё!