Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023)

Материал из 0x1.tv

Докладчик
Александр Кардаполов

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

Видео

Презентация

Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023).pdf

Thesis

Проблема

Развитие информационных систем в XXI веке характеризуется ростом сложности приложений и инфраструктуры, объёмов обрабатываемых данных и повышенными требованиями к скорости получения результата:

  • Программный и инфраструктурный код, который используется для построения программно-аппаратных комплексов, усложняется, появляются всё новые абстракции, которые используются без понимания того, как оно устроено внутри, в виде «черного ящика». Это приводит к росту количества человеческих ошибок при разработке и сопровождении программного обеспечения (багов). Например, широкое распространение получила практика управления сложностью путём декомпозиции сложных систем (монолитов) на более простые части (микросервисы). Но и она не решает всех проблем — управлять системой из десятков, сотен и даже тысяч небольших компонентов тоже становится непростой задачей.
  • С каждым годом, информационные системы создают всё больший поток данных, которые необходимы для принятия решений в различных сферах человеческой деятельности. Для примера можно взять рост безналичных платежей за последние 10 лет. Больше данных теперь требуется и для обеспечения мониторинга программно-аппаратных комплексов, сбора трассировок и журналов, мониторинга безопасности, анализа бизнес-метрик и т. п. Всё это требует особой культуры работы с данными, когда управленческие решения принимаются на базе цифр и расчётов, а не на интуиции и личном опыте — так называемый подход «Data-driven».
  • Хорошо знакомое «Time To Market» в последнее время повышает требования и к информационными технологиям, когда поставка информации для принятия решения требуется прямо сейчас, в режиме реального времени. В нашем случае скорость получения результата — «Time To Result», становится критически важным, чтобы оперативно и точно реагировать на изменившиеся условия, снижать время реакции на инциденты и т. п. Для примера, как один из принципов манифеста гибкой разработки «Agile» — частая поставка работающего приложения.

Решение

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

Широкое распространение получают практики объединения навыков и компетенций смежных специальностей. Например, на стыке разработки, администрирования (DevOps) и безопасности (DevSecOps).

Всё это приводит к росту когнитивной нагрузки на инженеров сопровождения, разработки, тестирования и аналитики, и как следствие — повышенной вероятности совершить ошибку.

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

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

Реализация

Real Time Intelligence Desktop — это настольное Java приложение, предназначенное для сбора, хранения, визуализации и анализа данных в режиме реального времени.

  • Сбор данных — реализован безагентный сбор данных с использованием собственной системы pipeline-ов. Поддерживается сбор данных как самим приложением, так и получение данных, собранных внешним агентом на стороне БД. Настраивается интервал сбора данных с внешнего источника, SQL-запрос и указывается поле данных для хранения меток времени (timestamp) в локальной базе данных.
  • Хранение и обработка данных – используется встроенная БД блочно-колоночного типа для хранения данных временных рядов FBASE. Для оптимизации хранения данных используется концепция локального индексирования, когда решение об использовании того или иного типа хранения (RAW, ENUM или HISTOGRAM) принимается по распределению данных в собираемых наборах данных в автоматическом режиме.
  • Визуализация данных – используется открытый пакет JFreeChart для отображения графиков и отчётов. Доступен просмотр исторических данных, реализован быстрый доступ к визуализации по выбранной метрике и временному диапазону, доступ к истории выполнения запросов, возможность визуального представления результатов поиска по подстроке с группировкой по столбцам таблицы, постраничное получение данных для raw-данных.



Ad-hoc мониторинг в режиме реального времени (Александр Кардаполов, OSSDEVCONF-2023)!.jpg

Примечания и ссылки