Как PayU осуществляет проактивный мониторинг ошибок для мобильных SDK -: - www.deekpay.com

Как PayU осуществляет проактивный мониторинг ошибок в мобильных SDK -.

контексты

PayU предоставляет решения платежных шлюзов для онлайн-бизнеса, обслуживая более 500 000 торговцев и поддерживая более 150 способов оплаты. Это платежный партнер, которого выбирают продавцы электронной коммерции, включая все крупные компании электронной коммерции и большинство авиакомпаний.

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

Ниже мы расскажем о том, как мы создали PayU Crash Reporter SDK и интегрировали его во все наши SDK-продукты для стратегии раннего исправления.

Изложение проблемы

PayU распространяет SDK через публичные репозитории (например, Maven Central, Cocoa Pods), а предприятия интегрируют его в свои приложения. Когда в нашей кодовой базе происходит сбой, информация о сбое регистрируется на приборной панели инструмента сбоя продавца, а затем сообщается нам. Мы не можем отслеживать сбои в режиме реального времени. Отладка занимала больше времени, поскольку не всегда было легко получить необходимую отладочную информацию с приборной панели продавца. Иногда у нас возникали проблемы с разбором трассировки стека из-за отсутствия информации о версии SDK и соответствующих файлов отображения.

исследования

Мы пытались решить эту проблему с помощью множества продуктов, представленных на рынке (например, Crashlytics, ACRA, BugSnag), но ни один из них не был "plug-and-play".

Вот почему мы не можем решить эту проблему:

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

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

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

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

конечный метод

Мы разработали собственный PayU Crash Reporter SDK (основанный на Sentry) для решения вышеуказанных проблем. PayU Crash Reporter SDK регистрирует глобальный обработчик исключений для анализа трассировки стека и сообщает только о сбоях, которые происходят в PayU SDK. Высокочастотные события затем включаются в наши спринтерские циклы или устраняются в виде горячих исправлений, создавая более стабильный SDK.

PayU Crash Reporter SDK Flow

Приборная панель PayU Crash Reporter SDK

Размер: Около 40 КБ, 1/25 часть размера Sentry SDK. Мы уменьшили размер, удалив все ненужные функции.

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

Стабильность: программа, сообщающая о сбоях PayU, полностью написана на Kotlin и использует современные практики (такие как сопроцессинг) для уменьшения количества сетевых вызовов и повышения стабильности.

Расширяемость: PayU Crash Reporter SDK предназначен для использования всеми нашими продуктами SDK для мониторинга аварий.

идти от силы к силе

Благодаря тому, что PayU Crash Reporter SDK интегрирован во все SDK, мы можем обеспечить бесперебойную и стабильную работу для более чем 150 продавцов.

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

Кроме того, частые сбои, наблюдаемые PayU Crash Reporter SDK во время выполнения программы (например, необработанные исключения, исключения числового формата, исключения незаконного параметра, исключения нулевого указателя и т. д.), были немедленно исправлены в последующих версиях соответствующего SDK.

Все, что нужно для начала работы

Вы можете ознакомиться с различными платежными SDK, предлагаемыми PayU, чтобы обеспечить бесперебойную работу платежных систем - как для Android, так и для iOS.

За любой поддержкой, связанной с интеграцией, обращайтесь к своему менеджеру по работе с ключевыми клиентами или по электронной почте [email protected].