Приложения

Что такое Отчёты о падениях (crash reports)

Что это

Когда приложение падает или не может подключиться, оно отправляет на сервер разработчика журнал, версию и состояние сети. Разработчик видит проблему раньше, чем пользователь напишет.

Как используем

Свой приёмник на Python в Docker на сервере заказчика: секреты маскируются на устройстве, при обрыве связи отчёт ждёт в очереди. Не зависит от иностранных сервисов.

Где это нужно бизнесу

  • От пользователей приходит «у меня не работает», а разработчику нужны журнал, версия, состояние сети и причина падения.
  • Отчёты не должны уходить в сторонние сервисы: данные тестеров и клиентов остаются у владельца.
  • В журнале могут оказаться ключи, ссылки подписок и пароли, и отчёт не должен стать утечкой.
  • О сбое хочется узнать раньше, чем пользователь напишет в поддержку.

Как мы это используем

У наших приложений два приёмника отчётов на своих серверах: для плеера OshaPlay и для VPN-клиента. Приёмник — небольшая программа на Python в Docker за nginx; приём только по токену, наружу отчёты не отдаются, разработчик читает их скриптом.

  • VPN-клиент присылает четыре вида отчётов: падение, журнал по кнопке «Отправить диагностику», результаты проверки входов и сообщение пользователя. В режиме тестера отчёты о падениях и аномалиях — петле переподключений, сбое ядра, скачке задержки — уходят сами.
  • OshaPlay отправляет журнал до 5 МБ, модель телефона, аудиовыходы, наушники и отчёт проверки ЦАПа раз в 12 часов, после падения при следующем запуске и сразу при ошибке воспроизведения. Музыкальные файлы не отправляются никогда.
  • Польза на практике. По отчётам с телефона нашли причину заиканий звука при выключенном экране на Huawei.

Приёмник отчётов делаем в разделе Приложения для Android и Windows.

Типичные проблемы

  • Секреты в журнале. Ссылки подписок, ключи vless://, UUID, пароли, токены и заголовки Bearer маскируются на устройстве при записи журнала, а не на сервере. Это проверено на реальных отчётах.
  • Нет связи. VPN-клиент кладёт отчёты в очередь на диске, до 20 файлов и 50 МБ, и досылает, когда приёмник снова доступен. Отправка никогда не блокирует приложение.
  • Шум. Автоматические отчёты одного вида уходят не чаще раза в 5 минут. Ответ 413 сбрасывает отчёт, ответ 403 останавливает отправку до перезапуска приложения.
  • Место на сервере. Отчёты OshaPlay хранятся 90 дней и не больше 800 МБ в сумме.
  • Согласие. Режим тестера включён по умолчанию, потому что все сборки пока тестовые, и одновременно служит согласием на отправку. Для публичного выпуска его нужно выключить.

Когда это не нужно

Если у приложения десяток пользователей и разработчик сидит с ними в одном офисе, журнал можно забрать руками. Свой приёмник окупается, когда устройств много, они далеко, а данные нельзя отдавать стороннему сервису.

← Все термины

Нужен сайт, бот или автоматизация?

Термины объяснили — теперь давайте к делу: расскажите о задаче, а мы переведём её на понятный план работ.