Інтеграція New Relic APM для моніторингу мобільного застосунку

Коли мобільний застосунок починає гальмувати або втрачати користувачів, без точного моніторингу продуктивності не обійтися. Ми інтегруємо New Relic APM у ваші iOS та Android-застосунки, щоб ви бачили повну картину — від натискання кнопки до серверного запиту. Наша команда реалізує проєкт під ключ із подальшою підтримкою, забезпечуючи надійну роботу моніторингу.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Інтеграція New Relic APM для моніторингу мобільного застосунку

Аналітика мобільних застосунків: Firebase, Amplitude, MixpanelСередній~2-3 дні
Часті запитання

Ми інтегруємо 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% за годину Email
Приклад конфігурації агента для Android
NewRelic.withApplicationToken("AA-XXXXXXXX-XXXX")
    .withLoggingEnabled(true)
    .withCrashReporting(true)
    .withHttpResponseBodyCaptureEnabled(true)
    .start(applicationContext)

Як ми впроваджуємо New Relic

  1. Аналізуємо поточний застосунок — визначаємо ключові сценарії, мережеві запити, бізнес-події.
  2. Встановлюємо агент на iOS та Android, перевіряємо HTTP-автоінструментацію.
  3. Налаштовуємо Distributed Tracing з бекенд-агентом, верифікуємо трейси.
  4. Створюємо кастомні події під бізнес-воронку — реєстрація, перегляд, покупка.
  5. Конфігуруємо NRQL-алерти з нотифікацією в Slack/PagerDuty.
  6. Передаємо документацію — дашборди, алерти, інструкції з доробок.

Що входить в роботу

  • Встановлення агента iOS/Android (включаючи React Native через @newrelic/react-native-agent)
  • Верифікація HTTP-автоінструментації
  • Налаштування Distributed Tracing
  • Кастомні події під бізнес-воронку
  • NRQL-алерти
  • Документація по дашбордах та алертах
  • Навчання команди роботі з New Relic One
  • Пост-релізна підтримка 2 тижні

Терміни

Базова інтеграція з автоінструментацією: 1–2 дні. Кастомні події та дашборди: ще 1 день. Вартість розраховується індивідуально під ваш проєкт.

Отримайте консультацію щодо інтеграції New Relic у ваш мобільний застосунок — зв'яжіться з нами, щоб обговорити деталі. Замовте налаштування моніторингу вже сьогодні.

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

Останні роботи

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