Мы интегрируем New Relic APM в мобильные приложения на iOS и Android. Эта система показывает не только краши, но и тормоза UI, медленные сетевые запросы, падение конверсии. Вы получаете единый трейс от нажатия кнопки до SQL-запроса — без дополнительной корреляции. Заголовок newrelic (W3C TraceContext) пробрасывается автоматически. В New Relic One можно открыть HTTP-запрос из приложения и провалиться в серверный трейс. Мы провели 30+ интеграций для проектов с аудиторией от 50 000 DAU. Гарантируем стабильность мониторинга и правильное семплирование.
Почему Distributed Tracing обязателен для мобильного мониторинга?
Без Distributed Tracing вы видите только клиентскую часть. Если запрос падает с 500-й ошибкой на бэкенде, вы не узнаете причину. При включённом трейсинге каждый HTTP-вызов получает уникальный идентификатор. Агент мобильного приложения добавляет заголовки traceparent и tracestate. Серверный агент New Relic подхватывает их и формирует единый трейс. Вы видите время каждого сегмента: сетевой вызов, SQL, кеш. New Relic документация рекомендует включать Distributed Tracing для всех приложений с микросервисной архитектурой.
Как установить агент New Relic на iOS и Android?
iOS через Swift Package Manager:
// Package.swift .package(url: "https://github.com/newrelic/newrelic-ios-agent-spm", from: "7.4.0") // AppDelegate.application(_:didFinishLaunchingWithOptions:) import NewRelic NewRelic.start(withApplicationToken: "AA-XXXXXXXX-XXXX") Android через Gradle:
// build.gradle (project level) classpath("com.newrelic.agent.android:agent-gradle-plugin:7.+") // build.gradle (app level) apply plugin: 'newrelic' implementation("com.newrelic.agent.android:android-agent:7.+") // Application.onCreate() NewRelic.withApplicationToken("AA-XXXXXXXX-XXXX") .withLoggingEnabled(false) .start(applicationContext) После установки агент автоматически инструментирует HTTP-вызовы: iOS перехватывает URLSession через swizzling, Android — через байткод-инструментацию OkHttp и HttpURLConnection. Если используете кастомные сетевые слои (NWConnection, кастомный URLProtocol), проверьте, что трекинг работает явно.
Как проверить автоинструментацию?
Сразу после запуска откройте вкладку Distributed traces в New Relic One. Если запросы отображаются с корректными длительностями и статусами, интеграция выполнена правильно. В противном случае проверьте, что агент инициализирован до первого сетевого запроса.
Что такое Distributed Tracing и как его включить?
Distributed Tracing по умолчанию включён только для Infinite Tracing. Для стандартного семплирования добавьте:
NewRelic.enableFeatures([.NRFeatureFlag_DistributedTracing]) На Android аналогичный флаг не требуется — трейсинг работает после активации в настройках New Relic. Заголовок TraceContext автоматически пробрасывается в запросы к бэкенду, где New Relic APM агент подхватывает его и формирует единый трейс.
Как кастомные события улучшают бизнес-метрики?
Кастомные события позволяют отслеживать бизнес-воронку. Например, запись события CheckoutCompleted с атрибутами order_id, total, payment_method.
// iOS NewRelic.recordCustomEvent("CheckoutCompleted", attributes: ["order_id": orderId, "total": total, "payment_method": method]) // Android NewRelic.recordCustomEvent("CheckoutCompleted", mapOf("order_id" to orderId, "total" to total)) Эти события попадают в NRQL — мощный SQL-подобный язык. Строим дашборды с временными рядами, FACET по платёжным методам, считаем конверсию воронки.
Отслеживание ошибок и крэшей
Крэши собираются автоматически. Handled exceptions записываем явно:
// iOS do { try performPayment() } catch { NewRelic.recordError(error, attributes: ["context": "checkout"]) } // Android NewRelic.recordError(exception, mapOf("context" to "checkout")) Крэш-репорты содержат Thread State всех потоков, ANR-события и Breadcrumb Trail — последовательность действий до краша.
Почему New Relic лучше Firebase Crashlytics для бизнес-метрик?
| Критерий | New Relic APM | Firebase Crashlytics |
|---|---|---|
| Тип мониторинга | Производительность + ошибки | Только ошибки |
| Distributed Tracing | Да, до SQL-запроса | Нет |
| Кастомные бизнес-события | Да, с NRQL | Только лог ошибок |
| Алерты по конверсии | Да, на основе NRQL | Нет |
| Единый аккаунт с бэкендом | Да | Нет |
New Relic позволяет настроить алерт на падение crash-free rate ниже 99.5% или корреляцию network error rate с бизнес-метрикой. Firebase такого не даёт.
Как мы настраиваем NRQL-алерты
Типичные алерты, которые мы конфигурируем:
| Метрика | Условие | Канал уведомления |
|---|---|---|
| Crash-free rate | < 99.5% | Slack |
| Средняя длительность HTTP-запроса | > 2 с | PagerDuty |
| Конверсия checkout | падение > 10% за час |
Пример конфигурации агента для Android
NewRelic.withApplicationToken("AA-XXXXXXXX-XXXX") .withLoggingEnabled(true) .withCrashReporting(true) .withHttpResponseBodyCaptureEnabled(true) .start(applicationContext) Как мы внедряем New Relic
- Анализируем текущее приложение — определяем ключевые сценарии, сетевые запросы, бизнес-события.
- Устанавливаем агент на iOS и Android, проверяем HTTP-автоинструментацию.
- Настраиваем Distributed Tracing с бэкенд-агентом, верифицируем трейсы.
- Создаём кастомные события под бизнес-воронку — регистрация, просмотр, покупка.
- Конфигурируем NRQL-алерты с нотификацией в Slack/PagerDuty.
- Передаём документацию — дашборды, алерты, инструкции по доработкам.
Что входит в работу
- Установка агента iOS/Android (включая React Native через
@newrelic/react-native-agent) - Верификация HTTP-автоинструментации
- Настройка Distributed Tracing
- Кастомные события под бизнес-воронку
- NRQL-алерты
- Документация по дашбордам и алертам
- Обучение команды работе с New Relic One
- Пост-релизная поддержка 2 недели
Сроки
Базовая интеграция с автоинструментацией: 1–2 дня. Кастомные события и дашборды: ещё 1 день. Стоимость рассчитывается индивидуально под ваш проект.
Получите консультацию по интеграции New Relic в ваше мобильное приложение — свяжитесь с нами, чтобы обсудить детали. Закажите настройку мониторинга уже сегодня.







