Настройка дашборда Crash-Free Users Rate для мобильного приложения

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Настройка дашборда Crash-Free Users Rate для мобильного приложения
Простая
от 4 часов до 2 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Настройка дашборда Crash-Free Users Rate для мобильного приложения

Crash-Free Users Rate — метрика, которую продакт-менеджер, тимлид и CTO смотрят в первую очередь после релиза. Но стандартный дашборд в Firebase Crashlytics показывает только общий процент и топ-5 крэшей. Чтобы ответить на вопрос «у какой версии, на каком устройстве и в каком регионе проблема» — нужен дашборд с drill-down.

Что должен показывать дашборд

Минимальный набор измерений:

  • По версии приложения — сравнение текущего релиза с предыдущим
  • По платформе — iOS vs Android отдельно
  • По OS версии — часто крэши специфичны для Android 8 или iOS 15
  • По устройству — Samsung Galaxy A-серии vs Pixel vs iPhone SE
  • По времени — динамика за 7/30 дней, аномалии после деплоев

Sentry Release Comparison

В Sentry это встроено в Release Health. Но если нужен кастомный дашборд:

# Sentry API — получить crash-free rate по релизам
import requests

resp = requests.get(
    "https://sentry.io/api/0/organizations/YOUR_ORG/sessions/",
    headers={"Authorization": "Bearer YOUR_TOKEN"},
    params={
        "project": "YOUR_PROJECT_ID",
        "field": ["crash_free_rate(session)", "sum(session)"],
        "groupBy": "release",
        "statsPeriod": "14d",
        "interval": "1d"
    }
)
data = resp.json()

Datadog RUM Dashboard

В Datadog дашборд строится через RUM Analytics. Запрос для виджета:

# Crash-Free Users Rate по версии
formula: (1 - (count:rum.crash{env:production} / count:rum.session{env:production})) * 100
group_by: @application.version
visualize_as: timeseries

Полезный виджет — Comparison: сравнить текущую версию с предыдущей на одном графике:

# Версия n
count:rum.crash{env:production,application.version:2.3.1} / count:rum.session{env:production,application.version:2.3.1}

# Версия n-1
count:rum.crash{env:production,application.version:2.3.0} / count:rum.session{env:production,application.version:2.3.0}

Firebase + Grafana

Firebase Crashlytics не имеет API для экспорта метрик в реальном времени, но BigQuery Export позволяет стримить данные:

-- BigQuery: Crash-Free Users Rate по версии за последние 30 дней
SELECT
  app_info.version AS app_version,
  platform,
  ROUND(
    100 * (1 - COUNTIF(is_fatal) / COUNT(DISTINCT user.id)),
    2
  ) AS crash_free_users_rate,
  COUNT(DISTINCT user.id) AS total_users
FROM `project.firebase_crashlytics.table_YYYYMMDD`
WHERE DATE(_PARTITIONTIME) >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY app_version, platform
ORDER BY app_version DESC

Из BigQuery данные можно тянуть в Grafana через BigQuery Data Source плагин и строить нужные визуализации.

Важный нюанс: Users vs Sessions

Firebase считает Crash-Free Sessions Rate по умолчанию. Sentry считает Users Rate. Это разные числа.

Если один пользователь открыл приложение 10 раз и в одной сессии случился крэш:

  • Sessions Rate: 90% crash-free sessions (1 из 10 сессий с крэшем)
  • Users Rate: 0% crash-free users для этого пользователя

Users Rate — более жёсткая и честная метрика для UX. Sessions Rate — удобнее для мониторинга тренда.

Компоновка дашборда

┌─────────────────────────────────────────────────────────────────┐
│  Crash-Free Users Rate        [last 7d]   [last 30d]   [custom] │
├──────────────────────────┬──────────────────────────────────────┤
│  Timeseries:             │  By Version:                         │
│  v2.3.1 vs v2.3.0        │  v2.3.1: 99.4% (12,340 users)       │
│  [graph]                 │  v2.3.0: 98.9% (45,120 users)        │
│                          │  v2.2.8: 99.1% (8,230 users)         │
├──────────────────────────┼──────────────────────────────────────┤
│  By Platform:            │  By OS Version:                      │
│  iOS: 99.5%              │  Android 13: 99.6%                   │
│  Android: 98.9%          │  Android 11: 98.4% ← аномалия        │
│                          │  iOS 17: 99.7%                       │
│                          │  iOS 15: 99.2%                       │
├──────────────────────────┴──────────────────────────────────────┤
│  Top Crash Issues (last 24h):                                   │
│  1. NullPointerException in CartViewModel  [+340% vs yesterday] │
│  2. OutOfMemoryError in ImageLoader                             │
└─────────────────────────────────────────────────────────────────┘

Красная аномалия на Android 11 в примере выше — реальный паттерн. Часто связан с тем, что в конкретной версии OS есть баг системной библиотеки, и приложение его триггерит.

Что делаем

  • Определяем источник данных (Sentry / Datadog / Firebase+BigQuery)
  • Строим дашборд с drill-down по версии, платформе, OS, устройству
  • Настраиваем comparison-виджеты для сравнения релизов
  • Добавляем алерт при падении ниже порога (например, < 99%)
  • Создаём Slack-digest с ежедневным отчётом по Crash-Free Rate

Сроки

Дашборд в Sentry или Datadog: 4–8 часов. Firebase + BigQuery + Grafana: 1–2 дня. Стоимость рассчитывается индивидуально.