Настройка 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 минут и предложим план интеграции.







