Ми інтегруємо 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 у ваш мобільний застосунок — зв'яжіться з нами, щоб обговорити деталі. Замовте налаштування моніторингу вже сьогодні.







