Мониторинг с Prometheus: как это работает | OTUS
⚡ Подписка на курсы OTUS!
Интенсивная прокачка навыков для IT-специалистов!
Подробнее

Курсы

Программирование
Python Developer. Professional
-3%
Разработчик на Spring Framework
-5%
iOS Developer. Professional
-8%
Golang Developer. Professional
-6%
Базы данных
-12%
Agile Project Manager
-5%
Android Developer. Professional
-11%
Microservice Architecture
-5%
C++ Developer. Professional
-5%
Highload Architect
-6%
JavaScript Developer. Basic
-8%
Backend-разработчик на PHP
-9%
Архитектура и шаблоны проектирования C# Developer. Professional
-9%
Team Lead
-6%
Kotlin Backend Developer
-9%
Разработчик программных роботов (RPA) на базе UiPath и PIX Unity Game Developer. Basic Разработчик голосовых ассистентов и чат-ботов Node.js Developer Интенсив «Оптимизация в Java» Супер - интенсив по паттернам проектирования Супер - интенсив по Kubernetes iOS Developer. Basic Супер-интенсив «СУБД в высоконагруженных системах» Супер-интенсив "Tarantool"
Инфраструктура
DevOps практики и инструменты
-12%
Базы данных
-12%
Network engineer. Basic
-10%
Network engineer
-4%
Инфраструктурная платформа на основе Kubernetes
-6%
Экспресс-курс по управлению миграциями (DBVC)
-10%
Мониторинг и логирование: Zabbix, Prometheus, ELK
-10%
Administrator Linux. Professional
-6%
Разработчик IoT
-13%
Основы Windows Server Cloud Solution Architecture Разработчик голосовых ассистентов и чат-ботов VOIP инженер Супер-практикум по работе с протоколом BGP NoSQL Супер-практикум по использованию и настройке GIT Супер-интенсив «СУБД в высоконагруженных системах» Экспресс-курс «IaC Ansible»
Специализации Курсы в разработке Подготовительные курсы
+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 комментариев
Для комментирования необходимо авторизоваться