Эволюция автоматизированного сбора и анализа журналов в приложении Alipay

анализ данных mPaaS
Эволюция автоматизированного сбора и анализа журналов в приложении Alipay

задний план

В сочетании с «Конструкцией системы компонентов Ant Financial для одновременных сценариев из 100 миллионов уровней» мы можем полностью понять путь построения и мышление, лежащее в основе системы базовых компонентов мобильного терминала Alipay.Основываясь на фоне системы построения на стороне сервера, эта статья фокусируется на «Эволюция «Автоматизированного мобильного журнала и анализа» в приложении Alipay.

Структура технического обслуживания мобильного терминала Alipay

Это диаграмма технической архитектуры всей основной беспроводной команды мобильных терминалов Alipay.В то же время другие деловые сарафанное радио в системе Ant Financial, MYbank, Hong Kong Alipay, Tianhong Fund и т. д.) используют мобильную разработку платформа mPaaS для разработки кода, упаковки, оттенков серого Выпуск, запуск, исправление ошибок, эксплуатация, анализ. Таким образом, mPaaS является производным от основной технической архитектуры мобильного терминала Alipay и обеспечивает поддержку конкретных возможностей на каждом звене полного жизненного цикла приложения. Далее мы сосредоточимся на обмене"диагностика журнала"и"мобильная аналитика«Эволюция архитектуры и выбор мышления, лежащие в основе этих двух возможностей.

Структура технического обслуживания мобильных терминалов Alipay: структура анализа данных

Как показано на рисунке, это диаграмма технической архитектуры возможностей анализа данных, в которой «синхронизация данных», «скрытый SDK» и «шлюз журналов» являются исключительными возможностями мобильного терминала, а остальные — это данные, которые все платформы анализа данных должны иметь структуру.

1. Сбор логов

Далее мы сосредоточимся на анализе структуры сбора журналов мобильного терминала Alipay. Во-первых, первая часть — «Log SDK». SDK журналов обеспечивает скрытый интерфейс для бизнес-уровня. Он выглядит так же, как logger.info в Java: только бизнес-уровень. Вам необходимо передать информацию, которую вы хотите записать, в журнал SDK. После того, как SDK журнала получит бизнес-журнал, он перейдет к системе для получения соответствующей контекстной информации на уровне системы, такой как модель, версия операционной системы, версия приложения, разрешение мобильного телефона, идентификатор пользователя (если пользователь вошел в систему), идентификатор устройства, страница A, текущая страница и т. д., а затем интегрируйте эту информацию и содержимое бизнес-журнала в скрытую точку, а затем запишите ее на жесткий диск устройства. Да, он только записывается на жесткий диск и не передается на сервер.

Пакет SDK для журналов будет взаимодействовать со шлюзом журналов в нужное время, чтобы определить, какие журналы нужно получать и о каком уровне журналов можно сообщать. Если можно сообщите, на какой частоте и при каких условиях сети. Таким образом, с помощью пакета SDK для журналов и шлюза для журналов мы можем реализовать стратегическое понижение версии журнала. Стратегическое понижение журнала особенно важно для Alipay, потому что текущий объем Alipay, объем ежедневных отчетов составляет около 30 Вт журналов/с, а во время большой акции объем журналов будет в десятки раз превышать ежедневный объем! Поэтому, если мы не примем какую-либо стратегию понижения журнала в течение периода акции, наша пропускная способность будет упакована журналами, и обычные бизнес-функции Alipay будут недоступны.

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

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

2. Классификация захоронений

После многих лет практики Alipay разделила точки захоронения бревен на четыре категории.

(1) Точка захоронения поведения: он используется для мониторинга бизнес-поведения, то есть скрытая точка журнала, передаваемая бизнес-уровнем, принадлежит скрытой точке поведения, а скрытая точка поведения принадлежит «ручной скрытой точке», которая должна быть разработана бизнесом. разработчики слоев. Тем не менее, не все бизнес-поведения должны разрабатываться вручную бизнес-стороной.Есть несколько очень универсальных бизнес-событий.Alipay помещает свои скрытые записи на уровень структуры, такие как отчеты о событиях и событиях входа в систему. Поэтому отслеживание поведения также можно назвать «полуавтоматическим отслеживанием».

(2) Автоматическая точка захоронения: относится к «Полностью автоматическому встраиванию», которое используется для записи некоторых распространенных действий на уровне страницы и на уровне компонентов, таких как открытие и закрытие страницы, отнимающие много времени страницы и клики по компонентам.

(3) Скрытая точка производительности: он относится к «полностью автоматической скрытой точке», которая используется для записи энергопотребления, использования трафика, использования памяти, скорости запуска и т. д. приложения.

(4) Аномальная закопанная точка: Это относится к "полностью автоматической скрытой точке", Строго говоря, это также своего рода скрытая точка производительности. Тем не менее, он записывает наиболее важные показатели производительности, которые напрямую влияют на пользователя, такие как сбой приложения, зависание, зависание и т. д. Этот тип точки захоронения относится к точке захоронения, которую нельзя понизить во время мгновенного повышения!

Пример кода на рисунке — это пример скрытой точки поведения Как видите, скрытая точка на самом деле является текстом в формате CSV. Мы видим, что есть содержимое информации об адресе и местоположении, добавленное шлюзом журнала, а также информация о клиентском устройстве, добавленная SDK журнала.

3. Модель обработки логов

Давайте посмотрим на общий процесс обработки внутреннего лога Alipay в целом:

(1) Сегментация журнала

Мы видели, что скрытая точка на самом деле является частью текста CSV. Так называемая сегментация журнала заключается в преобразовании текста в формате CSV в KV, который представляет собой HASHMAP в памяти. Этот процесс сегментации можно переключать прямо по запятой, и, конечно же, есть много других способов.

(2) Переключение журнала

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

(3) Намеки на размерную таблицу

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

(4) Вес фильтра UID

Есть два индикатора веса фильтра UID: один индикатор PV, а другой индикатор UV.

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

(5) Агрегация индексов

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

(6) Результат записывается

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

  • вычисления в реальном времени

режим вычислений в реальном времени: после получения журнала модель немедленно начинает расчет, и результат данных будет выведен в течение N минут (N

Рекомендуемые технологические параметры для вычислений в реальном времени включают: 1) Flink 2) Spark 3) Storm (JStorm производства Ali) 4) akka; akka подходит для мониторинга и оповещения в реальном времени с более легкой бизнес-логикой; перевод и воспроизведение журнала все лучше с Flink.

Краткое резюме выглядит следующим образом:

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

  • Автономные вычисления

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

Рекомендуемые технологические параметры для вычислений в реальном времени включают: 1) Flink 2) Spark 3) Hive 4) Hadoop; вы можете видеть, что FLINK\SPARK также присутствует в рекомендуемых технологических параметрах для моделей реального времени. Эти две технологии начинаются с разных отправных точек и достигают одной и той же конечной точки.

Сначала Flink выполнял только вычисления в реальном времени, а позже он начал предоставлять возможности пакетных офлайн-вычислений; Spark — как раз наоборот. В настоящее время мы по-прежнему в полной мере используем самые большие преимущества каждого стека технологий и выбираем Spark вместо Flink в автономном режиме. Позвольте мне сказать здесь еще несколько слов.В прошлом была классическая архитектура, модель «лямбда», это означает, что результаты расчета в реальном времени должны быть пересчитаны в автономном режиме.Это потому, что всегда будут случаи, когда реальные расчет времени теряет данные и вычисляет неточно, поэтому результаты, рассчитанные в режиме реального времени, используются только для наблюдения за тенденцией, а затем автономные результаты используются для дополнения на следующий день, чтобы гарантировать, что бизнес-сторона может видеть точные данные . Однако после того, как была опубликована статья о модели вычислений потока данных Google, все имеющиеся на рынке вычислительные машины реального времени теперь имеют вычислительные возможности «ровно один раз». Другими словами, больше не будет потери данных и неточных вычислений в реальном времени. -время вычислений.проблема. Хотя все еще существует модель «лямбда», то есть данные будут поступать на два механизма, вычисления в реальном времени и офлайн-вычисления, но оффлайн больше не является дополнением к вычислениям в реальном времени, а позволяет в полной мере использовать его производительность для рассчитать многодневные и многомесячные индикаторы.

Краткое резюме выглядит следующим образом:

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

  • мгновенные вычисления

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

К рекомендуемым технологиям для мгновенных вычислений относятся: Clickhouse (от yandex, Россия), Apache Druid (от MetaMarket), Pinot (от: LinkedIn). Alipay внутренне применяет модель вычислений в реальном времени к таким сценариям, как анализ детализации и анализ воронки, а иногда использует ее непосредственно в качестве базы данных OLAP.

Краткое резюме выглядит следующим образом:

Преимуществами вычислений в реальном времени являются сверхвысокая гибкость, UV-агрегация по задачам, неограниченные возможности детализации, задержка запросов в стиле доставки (в пределах 15 с) и низкие затраты на обучение; Недостатком вычислений в реальном времени является то, что потребление ресурсов огромно, задержку нельзя использовать для мониторинга и оповещения в реальном времени, высокая стоимость измерения и сложная структура.

Это техническая схема архитектуры системы мгновенных вычислений в Alipay в настоящее время. Из рисунка видно, что текущая техническая архитектура вычислений в реальном времени включает в себя узлы журнала в реальном времени (Read-time Nodes) для приема записей данных, глубокое хранилище для хранения исторических данных (HDFS, AFS, OSS и другие типы) , Исторический узел (исторический), используемый для предоставления возможностей запроса и анализа исторических данных (данные за один день). Эта вычислительная среда полностью поддерживает протокол MySQL, и пользователи могут работать с ней непосредственно с клиентом MySQL. Еще одной важной особенностью является то, что он может анализировать любую комбинацию внешних данных.

  • модель обработки логов

Подытожим три режима расчета:

модель вычислений в реальном времени: выполнение расчета в соответствии с заданным правилом сразу после приема данных и получение требуемого результата расчета в течение N минут.

Применимые сценарии: мониторинг в реальном времени и раннее предупреждение, отслеживание ссылок Преимущества: Меньшее потребление ресурсов, более быстрый вывод. Недостатки: высокая сложность настройки, низкая гибкость

Автономная модель вычислений: после приема данных они накапливаются в течение N часов в день и обрабатываются пакетами в соответствии с заданными правилами.

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

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

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

  • Динамическое захоронение

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

Мы сначала соединяем идеи для вышеуказанных четырех проблем, и я также даю соответствующие идеи и решения для каждой проблемы. Итак, являются ли эти ответы оптимальным решением или единственным решением вышеуказанной проблемы? Очевидно, что нет, потому что эти решения принесут объем разработки. Для клиента будет выпущен новый объем разработки, а разработка новых точек внедрения также может привести к раздуванию точек внедрения внутри приложения.

Что такое динамическая скрытая точка? Есть три основных понятия1) набор точек захоронения, 2) правила динамической отчетности о точках захоронения, 3) динамическая конфигурация расчета индекса.

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

Давайте взглянем на некоторые диаграммы доставки пользовательского интерфейса динамической платформы отслеживания.

Соответственно, давайте сосредоточимся на сервисах приложений, связанных со скрытыми точками Alipay: получение логов в реальном времени. Среди них его основная техническая структура включает MPS (рассылка сообщений), MSS (синхронизация данных) и шлюз журналов в mPaaS. Это связано с тем, что приложение на основе Ant будет поддерживать долгосрочное соединение с MPS (система Android) и MSS (система Apple).Когда журнал необходимо извлечь в режиме реального времени, пользователь может выполнять команды на консоли mPaaS через эти два канала, а затем клиент сообщит обо всех зашифрованных подробных журналах шлюзу журналов.

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

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

Наконец, давайте разберем серверную структуру mPaaS с логической структурой. mPaaS состоит из пяти основных компонентов:

  1. MGS (служба шлюза): перенаправить запрос клиента на бизнес-сервер.

  2. MDS (служба публикации): Предоставляет клиентам возможность публиковать несколько стратегий оттенков серого для нескольких ресурсов.

  3. MPS и MSS (служба отправки сообщений и синхронизации данных): Обеспечивает возможность доставки данных на основе долгосрочных подключений.

  4. МАС (Аналитические услуги): Это также в центре внимания сегодняшнее объяснение, способность анализа, основанная на логарифмических скрытых точках.

Если вас интересуют услуги мобильного анализа mPaaS, нажмитеадрес документаУзнать больше.

Читать в прошлом

«Начало | Обзор системы основных компонентов сервера mPaaS компании Ant Financial»

«Обзор системы основных компонентов сервера mPaaS компании Ant Financial: мобильный шлюз API MGS»

«Основные компоненты сервера Ant Financial mPaaS: анализ архитектуры сквозного доступа к мобильной сети в условиях параллелизма на уровне миллиардов»

«Основные компоненты сервера mPaaS: архитектура MPS для отправки сообщений и разработка процессов»

«Основные компоненты mPaaS: как Alipay создает систему анализа общественного мнения для мобильных продуктов? 》

«Основные компоненты сервера mPaaS: анализ архитектуры службы мобильного анализа MAS»

«Проект системы компонентов Ant Financial для 100 миллионов одновременных сценариев»

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

QRCode

Группа Dingding: номер группы поиска «23124039» через Dingding

С нетерпением жду вашего присоединения~