Конференция раннего чата по интерфейсу, новая отправная точка для развития интерфейса, была проведена совместно с Nuggets. Добавьте WeChat codingdreamer в эксклюзивную внутреннюю группу поддержки конференции и выиграйте на новой стартовой линии.
14-я сессия Front-end Growth and Promotion, 8-29 будет в прямом эфире, 9 лекторов (Ant Financial Services / Tax Friends и т. д.),Нажмите на меня, чтобы сесть в машину 👉 (Адрес регистрации):
Эта статьяПятая краткая версия раннего чата с вопросами и ответами (пожалуйста, смотрите записанное видео и PPT для полной версии):
Динамический сбор и анализ --- безмолвное поведение пользователя
1. Ответы на вопросы во время прямого эфира
Q: Спросите Qingyin: как сбор данных измеряет, повлияет ли это на производительность клиента?
О: В настоящее время для обнаружения используется система анализа производительности, и при входе на нашу страницу в большинстве случаев будет только один запрос отчета, который можно считать мало влияющим на производительность;
В: Спросите не озвученных: применима ли onbeforeunload к странице h5, встроенной в приложение?
A: jsbridge также может отображать событие leave для вызова;
В: Спросите безмолвных: есть ли способ похоронить точку, не вторгаясь в код? Способ генерации идентификатора ямы заключается в том, чтобы заранее знать, что яму нужно закопать, и написать это в коде.
A: Закопанная точка, прямой мониторинг всех событий, не триггерный фильтр, прямая отчетность, да, нам нужно имплантировать в соответствии с требованиями кода;
2. не отвечать на вопросы в прямом эфире
2.1 Сбор данных
В: Спросите Qingyin: как осуществляется сбор пользовательских данных?
A: js sdk смонтирует метод отчетности в окне для деловых звонков;
В: Спросите безмолвных: как определить, находится ли пользователь в слабом сетевом окружении?
A: SDK на стороне приложения будет оценивать сеть и сохранять данные с низким приоритетом в локальную базу данных, но на данный момент ПК не оценивает;
Вопрос: безмолвный вопрос: если это родное приложение, то разработка не может быть собрана?
A: Аналогично, в содержании отчета будут некоторые поля для приложения, и отчет будет представлен в соответствии с текущей сетью.
Q: Спросите Qingyin: используется ли процесс сбора данных только для внешнего интерфейса JS SDK? Нужно собирать журналы на стороне сервера?
О: В дополнение к JS SDK есть также SDK для приложений. Наша коллекция предназначена в основном для поведения пользователей. Если сбор журналов на стороне сервера не входит в объем, он будет собираться отдельно.
Q: Спросите Qingyin: как обеспечить точность данных о закопанных точках, которые вы собираете?Вы сообщаете часть данных каждый раз, когда вы нажимаете?
О: Да, данные будут передаваться каждый раз, когда событие инициируется в местоположении закопанной точки. Мы подключились к сторонним продуктам на ранней стадии и провели сравнение данных о различиях данных.
Q: Спросите Qingyin: Какие методы и индикаторы данных о поведении пользователей? Можете ли вы сосредоточиться на методах сбора данных для взаимодействия с интерфейсом?
A: Наиболее распространенными являются встраивание кода и полное встраивание, индикаторы данных перечислены в ppt, автоматические отчеты о взаимодействии с интерфейсом в основном включают в себя нажатие, прокрутку, вход и выход со страницы;
2.2 Очистка данных связана
Q: Спросите Qingyin: как быть с упорядоченностью воронки данных?
О: Есть два способа: один основан на источнике, а другой на основе уникального идентификатора пользователя и постепенной фильтрации;
Вопрос. Спросите Qingyin: должны ли внешние исключения, сбор данных о производительности и сбор данных о поведении пользователей быть разделены на разные JS SDK?
A: Сбор исключений внешнего интерфейса и сбор данных о поведении пользователей разделены на два JS SDK, и существует большая разница в том, как они собирают контент и фильтруют: сбор данных о производительности в настоящее время выполняется с помощью безголовых браузеров без имплантации SDK;
В: Спросите без озвучивания: как обеспечить согласованность данных. Как обеспечить передачу большого объема данных для одного пользователя?
A: Уникальный uuid будет сгенерирован и имплантирован в файл cookie браузера, а время истечения срока действия будет установлено как постоянное;
Вопрос: Безотно спрашивается: не так долго сокращать резиденцию (например, переключатель приложения в другое приложение, переключиться на другой браузер Таблица таблицы на таблице других веб-страниц) времени для удаления?
О: Да, эти события можно отслеживать и сообщать о них;
Q: Спросите Qingyin: я столкнулся с некоторыми проблемами, когда я собирал данные об экспозиции раньше, такие как экспозиция карты фокуса, модуль слайдов, который поддерживает горизонтальное скольжение (протекает только половина случаев с правой стороны), как избежать повторного экспозиции в этих ситуациях?
A: Мы сообщим об этом, когда он будет полностью раскрыт в первый раз, также возможно увеличить отложенный отчет;
В: Спросите безмолвных: как сделать так, чтобы запрос лога просто не конфликтовал с запросом на странице? В конце концов, параллелизм браузера ограничен.На самом деле нижний слой выполняется последовательно.Размещается ли запрос в сервис-воркере, чтобы молча отправить запрос?
О: Метод sendBeacon выполняется в задаче браузера, что позволит лучше избежать блокировки, другие типы запросов можно рассмотреть с помощью Service Worker;
В: Спросите у безголосых: ямы все равно должны быть добавлены вручную разработчиками.Если нет спроса на продукт, какие из них нужно закапывать, а какие нет, есть ли какие-то правила?Ручное добавление приведет к упущениям, а последующая модификация и затраты на обслуживание.Рассматривали ли вы стратегию полного сбора?Например,перехват всех нажатий кнопок?
О: С одной стороны, исследования и разработки также должны углубляться в бизнес, чтобы продвигать или стимулировать спрос на открытие продукта; с другой стороны, объем данных, собранных в точке полного погружения, велик, и стоимость сервера возрастет. соответственно; в то же время, возможности анализа должны быть высокими, и исследуется поведение сторонних пользователей. После сбора и анализа зрелых продуктов обнаруживается, что точность данных всех скрытых точек относительно низкая, но это не исключено, что план полных заглубленных точек будет рассмотрен на более позднем этапе;
2.3, связанный с представлением данных
Q: Спросите Qingyin: что такое стратегия отчетности и как стратегия обеспечивает точность сообщаемых данных, когда объем данных невелик?
A: Приложение будет сообщать в соответствии с ситуацией в сети, и компьютер в основном инициирует немедленный отчет, отчет о сбое также может быть временно сохранен локально;
В: Спросите Цин Инь: данные передаются в режиме реального времени? Как спроектировать агрегированную отчетность данных, то есть несколько фрагментов данных интегрируются в один запрос на отчетность? Во время агрегации, как спроектировать механизм хранения данных и как бороться с аномальными отчетами о данных? Есть ли какой-нибудь переключатель дизайна, который может управлять сбором данных и хранить их локально, не сообщая о них временно?
A: Сторона ПК не будет запускать отчет временно, если SDK не загружен, и будет сообщать в режиме реального времени в других случаях; приложение временно сохранит данные в локальной базе данных в соответствии с текущими условиями сети и сообщит об этом, когда сетевые условия хорошие; Классификация по приоритету будет выполняться для сообщаемых данных в зависимости от приоритета, следует ли сообщать об этом и когда сообщать об этом;
2.4 Мониторинг конкретных практик
В: спросите безмолвных: SDK для настраиваемых событий - как этого достичь?
A: Смонтируйте пользовательское событие, о котором сообщается, в Window.
В: Спросите безмолвный голос: можете ли вы уточнить встроенную точку, на которой построена платформа?
A: В идентификаторе проекта, сгенерированном строительной платформой, каждый компонент генерирует идентификатор блока и монтирует его на узле dom;
Q: Спросите Qingyin: как осуществляется передача данных по страницам? Нужно ли делать sessionid?
A: 1. Объедините путь с ссылкой 2. Приведите уникальный идентификатор триггерной позиции предыдущей страницы к URL-адресу следующей страницы;
В: Спросите безмолвных: спросите, как закопать точку во фреймворке Vue? Где пишутся ID страницы, ID pit и т.д.?
О: Идентификатор страницы генерируется напрямую sdk и вешается на тело, а pit id вешается на тело
Q: Спросите Qingyin: используете ли вы событие beforeunload, чтобы отслеживать, когда вы покидаете страницу? Кажется, триггер нестабилен?
О: В настоящее время да
Q: Спросите Qingyin: как создать страницу платформы, входить и выходить, а также настраивать, как пройти через восходящий и нисходящий потоки?
A: Страницы, созданные платформой, мало чем отличаются от обычных страниц.
В: Спросите без голоса: нужно ли пользователям добавлять utm в каждое место для сбора? Будет ли это слишком инвазивным?
A: Тег a не нужен, просто установите идентификатор блока во внешнем слое, и все внутренние теги a сообщаются в соответствии с индексом индекса, остальные обязательны, и точность будет выше;
Q: Спросите без озвучки: Если прыгать через JS, то как сгенерировать ID блока и ID пита и как соединить две страницы?
О: JS Jump напрямую добавляется к идентификатору источника в параметре URL, также можно использовать Refer в заголовке запроса;
В: Спросите безмолвных: sendbeacon может использовать только несколько определенных форматов данных (например, formdata для передачи данных, как это обрабатывается?
A: Отчет только в фиксированном формате;
В: Спросите безмолвный голос: можете ли вы уточнить, как реализовать мониторинг на странице, например, какое суждение и обработку следует делегировать событию документа?
A: Определите, имеет ли место, вызванное событием, идентификатор блока и идентификатор ямы, а затем решите, следует ли сообщать об этом;
В: Спросите без голоса: Каковы правила генерации серийных номеров? Каким образом? Будут ли какие-либо другие эффекты из-за чрезмерно длинной цепочки идентификаторов суффикса параметра utm тега href?
A: Идентификатор проекта, идентификатор страницы, идентификатор блока, идентификатор ямы, случайный идентификатор предыдущей страницы, длина всего идентификатора фиксирована, если длина исходного URL-адреса с параметрами велика, он может быть обрезан, но это не повлияет на исходные параметры;
В: Спросите у беззвучного голоса: Похоже, он больше подходит для относительно статичных страниц, как похоронить сложные страницы и динамические страницы? Можете ли вы представить, как генерируется json встроенной бизнес-части?
A: Поскольку событие было делегировано, даже динамически сгенерированные модули могут быть успешно переданы; json генерируется SDK и собирается поле за полем в соответствии с текущим типом события, о котором сообщается; большинство параметров получаются SDK;
2.5 Другое
В: Спросите безмолвных: в чем преимущества плагина для Chrome?
О: Вы можете интуитивно отображать клики и тепловые карты на странице браузера;
В: Спросите безмолвных: существует ли версия SDK для приобретения с открытым исходным кодом, которую можно изучить? Спросите рекомендацию
О: В будущем мы можем рассмотреть открытый исходный код, хахаха.
Q: Спросите Qingyin: где хранятся данные журнала? Как насчет конфигурации базы данных? При каких обстоятельствах они хранятся в операционной системе Alibaba Cloud?
A: Alibaba Cloud Log Service, данные старше полутора лет будут храниться в oss.
Q: Спросите невокализованный:0 код.Можете рассказать о лоукостной части?Я в ней не очень разбираюсь.Закопанные точки в коде тоже инжектируются,или через визуализацию?
A: Базовые данные pv и uv не нужно закапывать, а sdk собирается автоматически, такие события, как клики и экспозиции требуют внедрения кода, но для страниц, построенных через платформу визуального построения, уже добавлены сами компоненты закопанные точки, а идентификатор модуля создается генерацией и имплантацией платформы;
2. Как разработать стратегию встраивания внешнего интерфейса в сочетании с компонентами --- Kaiwei
1. Ответы на вопросы во время прямого эфира
В: Спросите Kaiwei: как количественно оценить качество кода и сложность конфигурации?
A: Качество кода: Группа разработала платформу проверки качества кода с использованием eslint и sonar.Фронтальный проект выбрасывает количество строк правил, влияющих на работу через подключаемый модуль качества при отправке и сборке (например, назначение второе значение константы).Другие проблемы могут быть Выборочное восстановление. После того, как код будет выпущен в повседневную среду, система автоматически создаст задачу проверки для текущей ветки, а затем классифицирует и подсчитает все отделы, которые запускают правила, и даст оценку и оценку хороших и плохих в соответствии с к количеству уровней Blocker/Critical/Major. , и времени, необходимому для анализа исправления. Отчет о качестве командного кода для сравнения, нажмите, чтобы оптимизировать код.
Сложность конфигурации: сначала суммируйте типы конфигурации компонентов: тип ввода базовая сложность 3, со значением по умолчанию - 1, обязательный + 1 (строка, число, url, json, форматированный текст и т. вниз и т. д.), базовая сложность 2; конфигурация вложенного типа, например, настройка списка с картинками, копирайтинг, ссылки, базовая сложность = сложность подэлементов плюс минимальное количество строк.
В: Спросите Kaiwei: как отслеживать и сообщать об ошибках и успехах рендеринга компонентов? Каждый компонент имеет уникальный идентификатор?
A: Каждый компонент на странице является независимым модулем, а скрипт рендеринга обрабатывается и вставляется на страницу по одному компоненту за раз. Каждый компонент имеет независимый бит spmc, и эта структура определяется при построении страницы. В случае сбоя рендеринга будет сообщено имя пакета, версия, spma, spmb, spmc и т. д. компонента, чтобы вы могли точно определить, какая страница и какой компонент в каком месте не удалось отобразить.
2. Вопросы, на которые не ответили во время прямого эфира
2.1 Очистка данных
Q: Спросите Kaiwei: нужно ли заранее знать структуру данных интерфейса сервиса, чтобы настроить правила проверки?
О: Разумеется, интерфейсная платформа обеспечивает ежедневный, предрелизный и онлайн предварительный просмотр данных, легко увидеть формат данных, а макеты можно использовать для отладки компонентов.
Q: Спросите Kaiwei: что еще есть в конфигурации проверки, кроме проверки данных?
A: Только проверка данных. Эта проверка делится на обнаружение на стороне сервера и на внешнем интерфейсе. Прежде чем страница будет построена и опубликована, реальные данные каждого компонента будут извлечены в соответствии с настроенным источником данных для проверки.Если есть проблема, она будет выдана напрямую, чтобы избежать онлайн-исключений. Опубликуйте на странице, сервер время от времени будет запускать фоновую проверку и немедленно предупреждать, если есть проблема. Небольшое количество интерфейсных онлайн-страниц имеют доступ к обнаружению в реальном времени, и перед возвратом запроса данных компоненту будет проведена проверка, которая подходит для тысяч пользователей.
В: Спросите Kaiwei: как количественно оценить производительность компонентов, какими способами и размерами?
A: Это время, необходимое для выполнения модуля компонента, время, необходимое для извлечения данных, и время, необходимое для изменения первой высоты до ожидаемой высоты. Компоненты загружаются вместе кучей бандлов, и подсчитать время запроса сети кода одного компонента непросто.
Q: Спросите Kaiwei: кликабельность компонентов может зависеть от разных мест и разных продуктов.Действительно ли данные платформы полезны для справки?
A: Разные локации и разные продукты.В этом случае данные следует просматривать в сочетании с результатами A/B-тестирования на странице.Система может быть построена для поддержки работы ручных A/B-тестов. Платформа алгоритма также поддерживает возможности рекомендации алгоритма для автоматического создания A/B-тестов. Страница /B. Рейтинг кликов компонента обычно используется для сравнения компонентов одного типа. Однотипные компоненты в основном закреплены на разных площадках, например, баннерная составляющая находится на верхнем слое, а компонент продвижения товара — на нижнем слое. Структура места также схожа, эффект щелчка одного и того же компонента в одном и том же подместе отличается, и также могут быть заданы определенные стратегии настройки.
2.1 Мониторинг конкретных практик
Q: Спросите Kaiwei: как сделать встраивание и мониторинг, если рендеринг компонента успешен или нет?
О: Компоненты на странице рендерятся построчно (по одному компоненту в строке).Когда компонент впервые появляется в видимом диапазоне, начинается рендеринг. Есть ли аномалия при загрузке, есть ли аномалия в процессе выборки данных, соответствуют ли данные заданным правилам, является ли первое выполнение компонента вставки данных ненормальным и достигает ли он заданной высоты.
Q: Спросите Kaiwei: как контролировать и реализовать частоту белого экрана? Вы можете вдаваться в подробности?
О: То же, что и выше
Q: Спросите Kaiwei: Этот тип компонента построен, как разработка разрабатывает этот тип компонента, есть ли какой-либо сценарий, в котором компонент встраивается в компонент?
О: Сам строительный компонент представляет собой обычный модульный компонент.После написания кода он упаковывается в cmd-модуль через инструмент скаффолдинга.Модуль возвращает функцию, а параметром являются инициализированные данные. То, что мы пишем, является компонентом реакции.Каждый раз, когда компонент загружается, пустой div вставляется в пол страницы, а затем вызывается рендеринг реакции, чтобы вставить его в пустой div. Вложенные компоненты компонентов: эта ситуация часто встречается, но она обрабатывается не при построении, а на уровне кода, компонент A импортирует компонент B, а затем публикует и строит компонент A. Это более хлопотно, когда версия обновляется. Компонент B изменен, но нет изменений в компоненте A. Сначала должен быть выпущен компонент B, а затем один раз должен быть выпущен компонент A.
Q: Спросите Kaiwei: Все страницы действий формируются путем сборки бизнес-плагинов. Есть ли у каждого бизнес-компонента собственный независимый бизнес-запрос? Как эти бизнес-данные взаимодействуют с сервером?
О: Сам компонент не заботится об источнике данных, данные вводятся в компонент через пропсы. Чтобы создать компонент, необходимо определить связанную с ним схему.Эта схема представляет собой динамическую форму, которая настраивается операцией при ее построении. Часть операции со статическими данными — это то, что вы заполняете. Передняя и задняя часть части динамических данных согласовывают только один интерфейс (на основе пользовательского интерфейса при настройке), и интерфейс идентифицируется идентификатором.Для сервера за этим стоит много логики.Для внешнего интерфейса, входные параметры фиксированы, и вам нужно только заполнить идентификаторы категорий (женская одежда, еда, напитки) могут вернуть данные для тысяч человек. Разумеется, все данные настраиваются на платформе, что обеспечивает согласованность таких полей, как заголовок и изображение.
2.3 Другое
В: Спросите Кайвея: сочетается ли мониторинг компонентов с бизнесом?
О: Мониторинг компонентов сам по себе не имеет отношения к бизнесу, так же как и мониторинг белого экрана и производительности страницы — это общее решение. Однако бизнес может проводить анализ и вторичную обработку отслеживаемых данных.
В: Спросите Кайвея: можете ли вы подробно рассказать, как реализовано это яйцо данных?
О: На той же онлайн-странице посетите этот URL-адрес, после возврата на исходный сайт, прежде чем вернуться к html-странице (jsbundle возвращается в приложение), служба рендеринга определяет, что пользователь находится в белом списке (Alibaba внутренние сотрудники), а к возвращаемому содержимому добавляется очень короткий командный сценарий, открытый яйцом данных. Пользователь нажимает 7 в пустой области страницы, чтобы вызвать панель просмотра данных (в первый раз вызвать, а затем загрузить скрипт панели подробных данных). Таким образом, данные компонента можно просматривать непосредственно на онлайн-странице, а страница, просматриваемая обычными пользователями, представляет собой просто обычное место.
В: Спросите Кайвея: дизайн ваших платформ разработан вами самостоятельно, и есть ли у вас задействованные продукты?
О: Платформы технологического типа — это в основном проекты, инициированные студентами-разработчиками Али, большинство из которых не участвуют в проектировании продуктов, таких как интерфейсные инженерные платформы, строительные платформы и платформы мониторинга исключений. База данных и серверный код некоторых интерфейсных проектов написаны с использованием nodejs во внешнем интерфейсе. Только проекты, тесно связанные с операциями, такие как поощрение инвестиций, выбор продукта и конфигурация, будут включать продукт.Проекты в этой ситуации редко инициируются разработчиками.
3. Как проводить анализ данных мониторинга для сценариев --- Batian
1. Ответы на вопросы во время прямого эфира
В: Спросите Батяна: почему у Али так много платформ для мониторинга и сбора данных, нельзя ли их унифицировать?
A: Сбор данных Али универсален, мы все собираем данные с помощью частей SPM и Gold. Однако бизнес каждого BU различен, а требования и обработка данных различны, поэтому у каждого BU обычно есть свои собственные информационные продукты. Например, некоторые анализы данных, которыми мы поделились, представляют собой очень адаптированный для бизнеса анализ данных, который не является универсальным на уровне BU.Очень сложно реализовать универсальность платформы данных этого типа на групповом уровне.
В: Спросите у Батяна: вы говорите о дизайне продукта, он связан с исследованиями и разработками? Как происходит ваше взаимодействие, по настройке модели?
A: Этот продукт спроектирован и разработан фронтендом, он в основном основан на собственных болевых точках (почему бизнес-сценарии и компоненты разрабатываются каждый день), и я надеюсь потратить время на самые значимые вещи, поэтому я нажимаю путем измерения производительности сценариев Наши бизнес-одноклассники. В дополнение к «ментальному отчету по сценарию», отчет о данных нашего сценария не требует от студентов-бизнесменов ввода модели сценария, если бизнес-данные очищены.
2. Вопросы, на которые не ответили во время прямого эфира
2.1 Очистка данных
Q: Спросите Батиан: Как проверить точность собранных данных?
О: Что касается сбора данных, то обычно бывает много случаев пропуска сбора. Но для определения точности данных, я думаю, перед сбором данных следует систематически думать, какие данные следует собирать и каков формат сбора данных, обычно четко определяемый, собранные данные будут точными. Однако, если собранные данные пропущены, это может привести к неточности результатов на уровне очистки данных.
В: Спросите Батяна: может ли очистка данных анализироваться в реальном времени или в автономном режиме, можете ли вы представить конкретную реализацию?
О: Отчеты, которые мы представили выше, предназначены для автономного анализа. Эти отчеты обычно основаны на обзоре данных сцены, поэтому требования к данным в реальном времени не очень высоки. Конкретные детали реализации очистки данных также тесно связаны с требованиями бизнеса. Например, перекрытие толпы нашей сцены относится к перекрывающейся части «посещенной толпы A» и «посещенной толпы B». Пользователи, которые посещают сцену, обычно представлены индикатором сбора UV, поэтому нам нужно очистить только два. можно использовать перекрывающуюся часть каждой сцены.
В: Спросите у Батяна: реализация бизнес-отчетов, таких как событие щелчка, о котором вы упомянули, заключается в том, чтобы вручную закопать и сообщить во время развития бизнеса, или отслеживать все события, а затем фильтровать, как повысить энергоэффективность разработки ручное закапывание?
О: У нас есть разграничение между кликовыми событиями.Если есть переходы по url, мы их помечаем через spm.Если переходов по url нет, то нужно развитие бизнеса, чтобы их похоронить, а мы не будем хоронить все события.
2.2 Вопросы о продукте
В: Спросите Батяна: В чем ценность интерфейса в этом проекте?Помимо визуализации данных, можете ли вы открыть операцию для студентов операций?
О: Ценность этого проекта заключается в том, что мы подталкиваем бизнес к анализу данных, который может эффективно измерять производительность сцены, и оставляем наши драгоценные события в наших важных сценах, чтобы лучше играть нашу ценность. Кроме целевого входа в сцену, никаких других операций в сцене не требуется, а данные будут автоматически очищаться на регулярной основе.
2.3 Другое
В: Спросите Batian: все ли потребление данных kafaka и доступ к flink находятся на внешнем интерфейсе?
О: Нет, наше развертывание потока данных унифицировано, и внешний интерфейс не обрабатывает его напрямую.
Вопрос. Спросите Batian: как создать маркетинговую страницу с пользовательской коллекцией скрытых точек, чтобы не отставать от вышестоящих и нижестоящих приложений и h5?
A: Это spm нашего процесса обмена, вы можете подключить восходящую и нисходящую страницы через spm.
4. Как создать интерфейсную систему мониторинга для APP --- Джимми
1. Ответы на вопросы во время прямого эфира
1.1 Очистка данных
В: Спросите у Джимми: как следить за скоростью интернета у пользователя?
О: Обычно мы сообщаем о текущем типе ссылки пользователя. Отдельного определения скорости сети для пользователя нет. Мы используем только API производительности (в случае браузеров), чтобы сообщать о времени загрузки статических ресурсов при загрузке ресурсов. . Затем оптимизируйте больший код js.
В: Спросите Джимми: как собирать и анализировать сбои или сбои?
A: Android может напрямую наследовать
UncaughtExceptionHandler
Затем выполните пользовательскую обработку, и iOS сделает две подготовки: одна — это KSCrash с открытым исходным кодом сообщества, а другая — использоватьUncaughtExceptionHandler
и обработка сигналов
В: Спросите Джимми: В KsCrash есть некоторые ошибки, которые невозможно отловить, как с ними бороться?
А: использовать
UncaughtExceptionHandler
И следите за обработкой сигнала, старайтесь обеспечить полный захват ошибок
В: Спросите Джимми: исключается ли большое количество исключений, вызванных пользовательским оборудованием и сетью, как данные о помехах? Или как с этим бороться? Иногда такого рода данные очень велики и даже заглушают реальное исключение времени выполнения, исключение ресурса и т. д.?
О: Мы будем классифицировать конкретные ошибки, поэтому большое количество однотипных ошибок будет абстрагироваться в один тип ошибки (то есть понятие проблемы), поэтому нет необходимости просматривать ошибки в массовых логах, просто в список проблем. Проверьте проблему, будет предупреждение, когда проблема будет высокой, и пользователи могут просмотреть конкретное время возникновения ошибки и информацию о пользовательском устройстве через связанные ошибки под проблемой
1.2 Другое
В: Спросите Джимми: можете ли вы вкратце рассказать об идее реализации операции с возвратом?
A: Мы создадим идентификатор сеанса локально, когда пользователь откроет приложение. Этот идентификатор сеанса не изменится во время использования пользователем. Все операции связаны идентификатором сеанса.
В: Спросите Джимми: в базе данных есть проблемы, можете ли вы сказать мне, что они делают?
О: Проблема является результатом классификации серии ошибок с одинаковыми характеристиками. Она включает статус обработки, уровень (уровень P) и ответственное лицо, и может быть связана с ошибками кода и номерами проблемы. Обработка проблемы будет иметь полную запись истории и записи метода обработки, удобные для последующего просмотра.
В: Спросите Джимми: с какими узкими местами вы столкнулись при использовании MongoDB для сбора данных на ранней стадии и как последующие данные слишком сильно переносились?
A: Погребенная точка RN, которую мы имеем в предыдущий период, собирается с использованием MongoDB. Мы использовали около двух лет. Данные достигли 100 миллионов. Из-за случая, когда есть совместные часы (или коллекция), последующий запрос данных становится все более и более медленным. Миграция данных Мы только мигрируем важные бесконечные данные, которые не были обработаны, и нет миграции для данных отчетов, которые уже попали в хранилище данных.
2. Вопросы, на которые не ответили во время прямого эфира
2.1 Кэш данных журнала, связанный с
В: Спросите Джимми: когда вы используете mongoDB, какой порядок величины является узким местом данных?
A: На начальном этапе все наши закопанные точки RN собирались с помощью MongoDB.Мы использовали его около двух лет, и данные достигли уровня 100 млн. Из-за того, что в запросе есть связанные таблицы (или связанные коллекции), последующие запросы данных становятся все более и более медленными.
Вопрос. Спросите Джимми: какую роль играют mysql и elasticsearch в обеспечении устойчивости данных журналов?
О: ES используется для хранения исходных данных журнала, которые можно использовать для простого поиска и создания значков, но ES содержит много дублирующихся данных, в то время как MySQL абстрагирует данные, собранные ES, такие как ошибки одного и того же типа. записи (разные пользователи, разные устройства), сохраненные на ES, мы абстрагируем эти ошибки и сохраним их характеристики в MySQL, мы называем это задачей, задача имеет атрибуты управления (статус задачи, запись обработки, ответственное лицо) и т. д.) и свойства документа (результат обработки, метод обработки и т. д.)
2.2 Очистка данных
В: Спросите Джимми: как отслеживать производительность и ресурсы одностраничного коммутатора маршрутизации?
A: мониторинг коммутатора маршрутизации страницы SPA
onpopstate
, в случае поддержки perfomance API можно использовать производительность для мониторинга, если нет, то можно только мониторить различные события загрузки windows, и стараться мониторить как можно больше
В: Спросите Джимми: в смешанном проекте RN, как Xiaocai управлял и отчитывался?
A: Он разделен на два уровня: JS и Native, а отчеты унифицированы в хранилище и отчетах собственного уровня. Конкретная реализация PPT на уровне js имеет простое объяснение, в то время как собственный уровень является более сложным.Вот краткое упоминание об отчетах об ошибках: Android может напрямую наследовать UncaughtExceptionHandler, а затем выполнять пользовательскую обработку.Используйте UncaughtExceptionHandler и обработайте сигнал
2.3 Корреляция возврата операции
В: Спросите Джимми: можете ли вы вкратце рассказать об идее реализации операции с возвратом?
A: Мы создадим идентификатор сеанса локально, когда пользователь откроет приложение, этот идентификатор сеанса не изменится во время использования пользователем, и все операции связаны идентификатором сеанса.
В: Спросите Джимми: сбой должен происходить в реальном времени.Если индекс построен для реального времени, как рассматривается механизм возврата отчетных данных?
О: Что касается индекса ES, мы используем ежедневное индексирование. Мы предоставляем единый шаблон индекса (сопоставление шаблонов) для отслеживания с возвратом. Мы будем генерировать идентификатор сеанса локально, когда пользователь открывает приложение, и этот идентификатор сеанса используется во время использования пользователем. изменение, все операции объединяются по sessionId
5. Как реализовать мониторинг ошибок для ПК/H5/Applet --- Аллан
В: Спросите Аллана: как рассчитать производительность и данные о ресурсах после переключения одностраничной маршрутизации?
A: Skynet отвечает только за статистику данных об ошибках и будет подсчитывать некоторые простые PV/UV, производительность и другие статистические данные в нашей другой системе (Sky Eye).
Вопрос: Спросите у Аллана: Например, H5 будет встроен в разные веб-просмотры.На самом деле обнаружено, что есть много ошибок, которых нет в нашем коде.Сталкиваетесь ли вы с такими проблемами? Есть ли способ, кроме фильтрации, заставить разработчиков сосредоточиться на ошибках, которые действительно заслуживают внимания?
О: Да.
6. Как анализировать и оповещать на основе журналов ошибок --- Чжоу Нэнсян
1. Ответы на вопросы во время прямого эфира
В: Спросите Nengxiang: будут ли данные об осадках использоваться для статистики исторических данных?
О: Исходные данные хранятся в ЭП полтора месяца, а очищенные данные хранятся в БД два года.
В: Спросите Nengxiang: если в одно мгновение возникает большая область ошибки, мониторинг в квазиреальном времени не может быть немедленно обнаружен.Если выдается сигнал тревоги, потери уже велики?
A: В настоящее время мы можем как можно скорее добиться минутных сигналов тревоги для сигналов тревоги на стороне устройства.Сами сигналы тревоги также зависят от количества ошибок.Что нам нужно сделать, это сделать все возможное, чтобы выполнить задачу очистки быстро и подавать сигнал тревоги при возникновении большого количества ошибок Возможность сигнализации минутного уровня. Дальнейшая оптимизация аварийного сигнала квазиреального времени с уровнем ошибки внешнего интерфейса в 1 минуту до полного аварийного сигнала реального времени не имеет большого значения и мало осуществима.
В: Спросите Nengxiang: есть ли ссылка на поведение для веб-ошибок? Какие ключевые моменты были зафиксированы? Как проанализировать проблемы, вызванные сторонними плагинами для браузера?
О: На веб-сайте мы в настоящее время записываем переходы на страницы, запросы страниц, поведение пользователей и ошибки консоли. В настоящее время нет специальной обработки для сторонних плагинов, и проблема локализована в узлах совместного поведения и стеках ошибок. Если вы считаете, что использование пользователями сторонних подключаемых модулей может повлиять на ваш анализ ошибок, вы также можете собирать информацию о подключаемых модулях, используемых пользователями, в качестве фактора среды.
2. Вопросы, на которые не ответили во время прямого эфира
В: Спросите Nengxiang: будет ли ПК-терминал собирать информацию о действиях пользователей?
A: Сторона ПК будет собирать данные о переходах на страницы, запросах страниц, поведении пользователей и ошибках консоли.
В: Спросите Nengxiang: есть ли какие-либо рекомендации по колесам для записи поведения и их сравнения?
A: Методы записи поведения, которые мы в настоящее время используем в интерфейсе, отображаются в PPT Shunfa. Метод записи, используемый клиентом: переходы по страницам/переключение в фоновом режиме записываются единообразно в обратном вызове жизненного цикла страницы; сетевые запросы единообразно записываются в обратном вызове запроса сетевой библиотеки; изменения сетевой среды отслеживаются системной широковещательной передачей сетевого переключения; пользователь У нас есть в настоящее время не сообщается обо всех действиях кликов. Если мы соберем их все, мы можем рассмотреть возможность перехвата событий кликов или инструментовки.
В: Спросите Nengxiang: независимо от того, какое время отчетности, вы не все контролируете в реальном времени, а наблюдаете в квазиреальном времени. Будет ли это неуместно?
О: Вроде бы мы определили какие-то понятия, из-за чего этот будильник выглядит как часовой уровень, но на самом деле временной интервал, на котором мы дергаем неправильную задачу опроса, не изменился, пока это минутный уровень, мы будет по-прежнему проверять Да каждую минуту, чтобы определить, срабатывает ли предупреждение. Два времени отчета и последующая обработка предназначены для того, чтобы этот сигнал минутного уровня был более точным и чтобы избежать использования слишком давних ошибок для срабатывания сигнала тревоги. После этого наша политика предупреждений по-прежнему остается минутной.
7. Как быстро найти проблемы на основе отображения данных и стека --- Артур
1. Ответы на вопросы во время прямого эфира
В: Спросите Артура: серверная часть по-прежнему выполняется независимо от внешнего интерфейса?
О: Давайте сначала поговорим о нашем продукте. Первый — сбор логов, эта часть зависит от других мидл-энд платформ внутри Ant, нет необходимости в разработке внутри нашей команды, данные можно получить, отчитавшись в заданном формате в скрипте. Затем идет очистка данных.Разработку этой части завершают два профессиональных студента по разработке данных. Затем есть логика на стороне сервера, которую выполняют студенты, работающие с интерфейсом, с использованием стека технологий Egg. Окончательный интерфейсный дисплей, конечно же, завершается интерфейсом.
Если вам нужно построить свою собственную платформу мониторинга, в части сбора логов лучше всего передать проектирование тому, у кого есть опыт работы с распределенной архитектурой, что позволит избежать многих подводных камней.Кроме того, вы также можете поучиться у предыдущих лекторов в часть сбора журналов. Разработка данных также рекомендуется для людей, имеющих опыт работы с данными, включая выбор технологий и оптимизацию алгоритмов.Обычным фронтенд-разработчикам не хватает опыта в этой области, поэтому фронтенд-разработка задач данных не рекомендуется. Серверная логика обычно не становится узким местом, поэтому эту часть работы по разработке могут взять на себя фронтенд-студенты.
В: Спросите Артура: как стек ошибок сопоставляется с файлом sourceMap и как это реализовано?
A: Отображение исходной карты должно использоватьsource-mapЭтот пакет npm реализует функции SourceMapConsumer в файле README.
Q: Спросите Артура: Какие меры безопасности необходимо предпринять, чтобы сервер мог читать и записывать собранную информацию? Например, угроза безопасности сервера после подделки данных при сборе данных?
A: Я не совсем уверен, что здесь подразумевается под безопасностью. В настоящее время журналы нашей системы собираются с использованием внутреннего шлюза журналов Ant. Сам шлюз журналов будет иметь базовые меры безопасности, такие как защита от DDS, но, поскольку он поддерживается другими командами, я не знаю внутренних подробности, так что извините за эту проблему. Не могу ответить. 😂
2. Вопросы, на которые не ответили во время прямого эфира
2.1 Очистка данных
В: Спросите Артура: при таком количестве информации, полученной в результате мониторинга, будет ли сервер регулярно очищаться?
О: Да, подробные данные и данные минутного уровня в основном хранятся в течение одной недели, а данные дневного уровня не превышают максимум одного месяца.В конце концов, мониторинг в основном фокусируется на настоящем, поэтому данные не будут храниться в течение слишком долго. Как правило, некоторые требования, связанные с отчетом, необходимо сохранять в течение длительного времени.Для отчета необходимые статистические данные могут быть рассчитаны периодически.Статистических данных обычно не слишком много, и долгосрочное хранение не займет слишком много Ресурсы.
В: Спросите Артура: как определить, вызвана ли ошибка стека внутренним интерфейсом или логической ошибкой внешнего интерфейса, есть ли хорошее решение для позиционирования?
О: Все стеки, которые мы можем собирать в настоящее время, — это все ошибки во внешнем коде. Для ошибок внутреннего интерфейса у нас есть мониторинг исключений интерфейса. Когда запрос интерфейса сообщает об ошибке, он сообщает запрошенный URL-адрес, параметры, код ошибки и другая информация Конкретный метод: захват XHR и выборка, эта часть может относиться к совместному использованию Аллана. Конечно, бывает и исключение, вызванное неправильной обработкой результата запроса фронтендом, обычно формат возвращаемого значения фронтендом и бэкендом не согласован, что приводит к возникновению исключения . В этом случае через стек обычно видно поле ошибки и стек вызовов. Если вы по-прежнему не можете найти основную причину, вам нужно найти способ воспроизвести ошибку, а затем выполнить детальную отладку.
В: Спросите Артура: чтобы реализовать де-отчетность стека, вам нужно использовать CDN, чтобы сначала пройти запрос.Если пользователь покинет веб-страницу в это время, журнал будет потерян?
О: Да, на самом деле с такой же проблемой будут сталкиваться не только отчеты о стеке, но и другие запросы внешнего интерфейса, поэтому SDK, собранный внешним интерфейсом, желательно должен иметь механизм локального кэширования и сохранять отчетный контент в событие, когда запрос не был успешно отправлен. , и сообщите об этом, когда SDK можно будет запустить в следующий раз. Для отчетности в Alipay у нас уже есть этот механизм, но мы не реализовали эту функцию в SDK обычных веб-страниц, это одна из функций, которые мы планируем сделать в этом году.
2.2 Другое
В: Спросите Артура: как сделать отображение второго уровня?
О: Само сопоставление не сложно, главное получить исходную карту и стек при сопоставлении, что является основным содержанием шаринга. Процесс картирования с использованиемsource-mapSourceMapConsumer, этот шаг выполняется быстро, если у вас есть исходная карта и стек. Наши продукты также выполняют еще один этап отображения кода — получение исходного кода через интерфейс зависимой платформы управления хранилищем исходного кода (аналогично gitlab) и его отображение с помощью highlight.js.
Q: Спросите Артура: Когда создается исходная карта, ppt говорит, что зависимости заблокированы, а затем создается исходная карта.Так что, две службы включены одновременно для одной и той же упаковки? Если исходная карта создается после выпуска, будет ли случай, когда исходная карта будет сохранена без нее?
A: Да, он создается с помощью двух разных сервисов, и действительно бывают случаи, когда обычная сборка завершается успешно, но исходная карта не собирается. В этом случае первое, что нужно сделать, это найти ошибку сборки. После того, как наш образ сборки выйдет из строя, будет запись об ошибке. С записью об ошибке ее можно отслеживать и предупреждать. Когда обнаруживается, что произошел сбой сборки, его необходимо детально проанализировать. Обычно сбой вызван OOM. В этом случае вы можете увеличить память контейнера сборки и пересобрать его. необходимо уведомить мейнтейнера о скаффолдинге для создания исходной карты.Логика была оптимизирована.
8. Как спроектировать внешний анализ в реальном времени и систему сигнализации --- Candle Image
1. Ответы на вопросы во время прямого эфира
В: Спросите Чжусяна: есть много ошибок, связанных с вмешательством хоста, как вы их фильтруете?
A: Есть 2 основных средства. 1 — фильтровать по ключевому слову неправильного сообщения, например, toutiaoJSBridge, 2 — фильтровать по стеку ошибок, например, неправильный файл — html, а затем фильтровать напрямую.
В: Спросите Чжусяна: является ли клиент DingTalk стеком технологий js? Можете ли вы кратко представить технологический стек клиента DingTalk? Помните оригинальный nw.js
A: Сейчас это архитектура CEF, а не чистый js, строго говоря, это какая-то контейнерная технология. Подробности раскрыть непросто.
2. Вопросы, на которые не ответили во время прямого эфира
2.1 Очистка данных
В: Спросите Чжусяна: как почистить журнал и как его отфильтровать?
A: Есть 2 основных средства. 1 — фильтровать по ключевому слову неправильного сообщения, например, toutiaoJSBridge, 2 — фильтровать по стеку ошибок, например, неправильный файл — html, а затем фильтровать напрямую. Эти методы фильтрации фильтруются не на уровне сбора данных, а в системе регистрации аварийных сигналов.
В: Спросите Чжусяна: как различать и фильтровать информацию о помехах хоста и фактические ошибки JS?
A: Информация о помехах хоста обычно неверна в файле html, а фактический неверный файл js находится в файле js.
Q: Спросите у Zhuxiang: Как избавиться от всех мешающих jserrors, это получается при анализе результатов системы 1.0?
О: Да. Это анализ фильтрации, основанный на эмпирических значениях.Правило, обобщенное ниже, заключается в том, что файл ошибки находится в формате html или js, что является важной основой для определения вмешательства jserror.
В: Спросите Чжусяна: как агрегировать бизнес-данные, можете ли вы привести пример? Как отфильтровать ошибки журнала для агрегированных бизнес-данных?
О: Агрегация бизнес-данных очень проста, то есть логи попадают в одно место, и нет разницы между распределенными и папочными. Наша система будет развернута на сервере, будет сканировать исходный журнал по определенным правилам и выполнять вторичное потребление.
В: Спросите Чжусяна: есть ли какие-либо ошибки в видеоизображениях средств наблюдения? Как получить больше информации об исключении мультимедиа, например, время запроса истекло или ресурс не существует, информации, полученной onerror, должно быть недостаточно?
A: Нет регистрации ошибок для мультимедийной информации, которая относится к отслеживанию ошибок. На рынке есть несколько инструментов, которые могут это сделать, и другие инструменты подходят для расширения возможностей обслуживания клиентов и повышения эффективности решения проблем. Для обычных форм изделия, условно говоря, это будет не так тяжело.
2.2 Кэш данных журнала, связанный с
Q: Спросите у Zhuxiang: В чем разница между двойной записью журнала и записью в es и mysql?
A: Двойная запись относится не к хранению, а к потреблению. Журналы потребляются двумя системами, и требований к последующему хранению и отбору не слишком много.
2.3 Мониторинг встроенных бизнес-процессов
В: Спросите Чжусяна: каков процесс внедрения H5SDK?
A: Определите возможности сбора, спроектируйте API и определите выбор мессенджеров журналов. Точки времени сбора включают в себя активные отчеты и пассивные отчеты. По сути, эти возможности позволяют быстро написать SDK
2.4 Аномальная обратная связь, связанная
В: Спросите Чжусяна: помимо ошибок онлайн-мониторинга системы, будет ли Dingding напрямую связываться с пользователями с аномальной обратной связью? Как обрабатывается эта часть?
О: У нас есть автономные журналы и системы отслеживания обслуживания клиентов на уровне клиента. В основном это делается на индивидуальной основе в измерении пользователя.
В этой статье используетсяmdniceнабор текста