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

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

Платежные платформы — это сложные продукты

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

Основы эффективного мониторинга платежей

Чтобы решить эти проблемы, в игру вступают несколько ключевых элементов:

  1. Подробные данные в режиме реального времени. Первым шагом является получение исчерпывающей и самой последней информации о действиях на платформе для всех клиентов. Для этого требуется возможность сбора подробных данных о платежных транзакциях, производительности системы и взаимодействиях с клиентами. Вооружившись такой информацией, вы получили целостное представление о своих операциях. Мы используем журналы платежей, которые анализируются в режиме реального времени, хранятся и индексируются в ElasticSearch.
  2. Налаживание нормальной платежной деятельности в масштабе. Разнообразная клиентская база HiPay включает в себя целый ряд предприятий, от крупных международных интернет-магазинов до небольших местных ремесленных мастерских. У каждого клиента есть уникальные схемы оплаты, которые меняются в течение дня. Успешное определение того, что представляет собой «нормальная платежная деятельность» для каждого клиента в любой момент времени, является важной задачей. Это должно быть надежным и автоматизированным. Мы используем моделирование временных рядов и прогнозирование, чтобы предсказать, как данные о платежах будут выглядеть в будущем для каждого продавца.
  3. Непрерывный мониторинг и оповещение: после того, как базовый уровень ожидаемой платежной активности установлен, необходим надежный механизм сравнения. Постоянное измерение текущей производительности отдельных клиентов в сравнении с их ожидаемым поведением позволяет своевременно обнаруживать аномалии. При обнаружении несоответствий должны быть созданы соответствующие оповещения, что позволит оперативно вмешаться нашим командам эксплуатации для устранения любых проблем. Для этого мы используем информационные панели и оповещения Grafana.

Кстати, мы ищем Data Engineer со знанием ElasticSearch, чтобы присоединиться к команде, вот описание работы 😉

Как мы это сделали

Общая архитектура:

С технической точки зрения:

Здесь параллельно идут два потока.

Пакетный поток: создание точных прогнозов еженедельно

Цель здесь — еженедельно генерировать точные прогнозы и загружать их в хранилище данных ElasticSearch. Высококачественные прогнозы важны, поскольку они гарантируют низкий уровень ложных срабатываний. Мы используем наш механизм машинного обучения временных рядов (прогнозирование временных рядов), масштабируемый благодаря использованию DataFlow Prime (Google Cloud), разработанный и протестированный в нескольких случаях использования прогнозов, связанных с платежами.

Этот поток использует классический современный стек данных на основе Airflow, BigQuery, Meltano и dbt.

Полученные прогнозы рассчитываются раз в неделю и загружаются в индексы ElasticSearch.

Поток в реальном времени: постоянное наблюдение с помощью стека ElasticSearch и Grafana

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

Находясь на вершине ElasticSearch, Grafana отвечает за визуализацию данных, сравнительный анализ и управление оповещениями. Универсальная информационная панель Grafana отображает отслеживаемые показатели, что позволяет нам в режиме реального времени получать информацию об эффективности платежей. Кроме того, Grafana вычисляет оповещения и инициирует уведомления, обеспечивая своевременное вмешательство в ответ на аномалии. Вся подготовка и обслуживание этого стека осуществляется с помощью Terraform «инфраструктура как код», что обеспечивает согласованность и простоту развертывания.

До сих пор это давало исключительные результаты, несмотря на явно недостаточный размер кластера ElasticSearch. ElasticSearch (Apache Lucene под капотом) отличается быстрым сбором и обслуживанием данных, а хорошо настроенное машинное обучение временных рядов с Python можно легко масштабировать до десятков тысяч показателей с помощью адаптируемых облачных сервисов, таких как Google BigQuery и DataFlow.

Спасибо за прочтение !

Большое спасибо @vlegendre (инженерия данных) и @lvial (наука о данных) за прекрасную работу над этим проектом🙏 🔥