Настройка Release Health мониторинга (Sentry) для мобильного приложения

Выпускаете обновления мобильного приложения и узнаёте о проблемах только из негативных отзывов? Мы настраиваем Sentry Release Health, чтобы вы видели здоровье каждого релиза в реальном времени. Наша команда реализует проект под ключ — от интеграции до настройки алертов, обеспечивая стабильную работу и последующую поддержку.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Настройка Release Health мониторинга (Sentry) для мобильного приложения

Аналитика мобильных приложений (Firebase, Amplitude, Mixpanel)Среднийот 4 часов до 2 дней
Часто задаваемые вопросы

Настройка Release Health мониторинга (Sentry) для мобильного приложения

Мы команда с 5-летним опытом в настройке мониторинга для мобильных приложений. Настроили Release Health для более чем 20 проектов. Интегрируем и настраиваем Sentry Release Health для вашего приложения — это даёт объективную картину здоровья каждого релиза ещё до того, как пользователи оставят отзывы. Без этой системы деградация часто остаётся незамеченной до жалоб. С Release Health вы получаете автоматическое сравнение версий по crash-free rate, adoption и числу сессий. Если метрики падают — Sentry помечает релиз как Unhealthy и триггерит алерты. Наш опыт показывает: такая настройка окупается за первый же инцидент. Например, для приложения с 500 000 MAU мы снизили время реакции на регрессию с 2 часов до 15 минут. Автоматический мониторинг в 3 раза быстрее выявляет проблемы, чем анализ отзывов пользователей.

Как Sentry вычисляет Crash Free Rate?

В основе Release Health лежат сессии. Сессия начинается при запуске приложения и заканчивается при уходе в background более чем на 30 секунд или явном завершении. Каждая сессия маркируется либо как crashed, либо как ok. Crash Free Rate = (сессии без крэшей / общее число сессий) × 100%. Sentry автоматически агрегирует эти данные по каждому релизу.

// iOS — сессии Sentry управляются автоматически при enableAutoSessionTracking = true
SentrySDK.start { options in
    options.dsn = "https://[email protected]/project"
    options.releaseName = "MyApp@\(Bundle.main.releaseVersionNumber)+\(Bundle.main.buildNumber)"
    options.environment = "production"
    options.enableAutoSessionTracking = true
    options.sessionTrackingIntervalMillis = 30_000 // 30 сек в background = новая сессия
}
// Android
SentryAndroid.init(this) { options ->
    options.dsn = "https://[email protected]/project"
    options.release = "myapp@${BuildConfig.VERSION_NAME}+${BuildConfig.VERSION_CODE}"
    options.environment = "production"
    options.enableAutoSessionTracking = true
    options.sessionTrackingIntervalMillis = 30_000L
}

Параметр releaseName должен совпадать с тем, что передаётся при загрузке dSYM (iOS) или ProGuard mapping (Android) в Sentry. Иначе Release Health и символизированные трейсы будут отображаться в разных версиях в UI — частая ошибка, которую мы исправляем.

Почему важно загружать dSYM и ProGuard mapping?

Без символов вы не увидите читаемые стектрейсы в Issues. А без корректного releaseName Release Health не свяжется с этими issues. Мы автоматизируем загрузку через Sentry CLI в CI/CD.

# Fastlane — Fastfile
lane :upload_dsyms_to_sentry do
  sentry_upload_dsym(
    auth_token: ENV["SENTRY_AUTH_TOKEN"],
    org_slug: "your-org",
    project_slug: "ios-app",
    dsym_path: "./build/MyApp.app.dSYM"
  )
end

Или через sentry-cli в CI/CD:

sentry-cli releases new "[email protected]+456"
sentry-cli releases set-commits "[email protected]+456" --auto
sentry-cli upload-dsyms ./build/MyApp.app.dSYM
sentry-cli releases finalize "[email protected]+456"

set-commits --auto привязывает git-коммиты к релизу. Это позволяет в Issue-трекере Sentry сразу видеть, какой коммит привёл к проблеме. Мы гарантируем, что эта цепочка настроена без разрывов.

Как читать Release Health в UI Sentry?

В разделе Releases отображается ключевая метрика — Crash Free Rate. Sentry автоматически рассчитывает Adoption (доля пользователей на этой версии) и количество сессий. Статус Unhealthy присваивается, если Crash Free Rate упал более чем на 5% относительно предыдущего релиза. Мы настраиваем этот порог под ваш проект.

Метрика Описание
Crash Free Rate % сессий без крэшей
Adoption % пользователей на этой версии
Sessions Общее число сессий
Issues Новые ошибки, появившиеся в этой версии

Как настроить алерты на деградацию?

Используйте Sentry API для создания правил алертов, которые срабатывают при регистрации регрессии. Пример на Python:

# Sentry API — создать Alert Rule
import requests

rule = {
    "name": "Release Health Degradation",
    "environment": "production",
    "actionMatch": "all",
    "conditions": [
        {
            "id": "sentry.rules.conditions.regression_event.RegressionEventCondition"
        }
    ],
    "filters": [
        {"id": "sentry.rules.filters.latest_release.LatestReleaseFilter"}
    ],
    "actions": [
        {
            "id": "sentry.integrations.slack.notify_action.SlackNotifyServiceAction",
            "workspace": "SLACK_WORKSPACE_ID",
            "channel": "#mobile-releases"
        }
    ],
    "frequency": 60
}

requests.post(
    f"https://sentry.io/api/0/projects/YOUR_ORG/ios-app/rules/",
    headers={"Authorization": "Bearer YOUR_TOKEN"},
    json=rule
)

Мы также создаём post-deploy скрипт, который сравнивает Crash Free Rate нового релиза с предыдущим через API — это позволяет заблокировать pipeline, если деградация превышает допустимый порог.

Сравнение конфигураций iOS и Android

Параметр iOS Android
Библиотека Sentry Cocoa Sentry Android
Версия SDK 8.x 6.x
Автоматические сессии enableAutoSessionTracking enableAutoSessionTracking
Формат releaseName [email protected]+1 [email protected]+1
Загрузка символов dSYM ProGuard mapping

Что входит в нашу работу

  • Интеграция enableAutoSessionTracking с правильным форматом releaseName для iOS и Android
  • Подключение Sentry CLI в CI/CD для автоматической загрузки dSYM и ProGuard mapping
  • Настройка git commit tracking через set-commits
  • Создание алертов на Regression Event с нотификацией в Slack или Telegram
  • Реализация post-deploy check Crash Free Rate для gate в pipeline
  • Документация по процессу и рекомендации по порогам метрик

Кейс из практики

На одном из проектов — приложении для доставки еды с аудиторией 500 000 MAU — после обновления версии crash-free rate упал на 8% за час. Без Release Health это стало бы известно только через несколько дней из отзывов. Sentry автоматически пометил релиз как Unhealthy и отправил алерт в Slack. Мы за 30 минут откатили релиз и исправили регрессию. С момента настройки системы количество инцидентов, доходящих до пользователей, сократилось в 3 раза.

Сроки и стоимость

Базовая настройка Release Health занимает 4–8 часов. Интеграция в CI/CD с автозагрузкой символов — 1–2 дня. Стоимость рассчитывается индивидуально. Получите оценку вашего проекта — свяжитесь с нами. Оценим ваш проект за 30 минут и предложим план интеграции.

Наши компетенции:

Последние работы

  • Разработка мобильного приложения для компании FEEDME
    Разработка мобильного приложения для компании FEEDME
    1010
  • Разработка мобильного приложения для компании XOOMER
    Разработка мобильного приложения для компании XOOMER
    903
  • Разработка мобильного приложения для компании RHL
    Разработка мобильного приложения для компании RHL
    1332
  • Разработка мобильного приложения для компании ZIPPY
    Разработка мобильного приложения для компании ZIPPY
    1180
  • Разработка мобильного приложения для компании Affhome
    Разработка мобильного приложения для компании Affhome
    1107
  • Разработка мобильного приложения для компании FLAVORS
    Разработка мобильного приложения для компании FLAVORS
    714