APM (Application Performance Monitoring) — це комплексний підхід до спостереження за продуктивністю програмного забезпечення, що включає збір метрик, трасування запитів та діагностику помилок у реальному часі. За даними Gartner IT Glossary, 2024, APM об’єднує три ключові напрями: моніторинг користувацького досвіду, виявлення збоїв у архітектурі додатка та аналітику даних виконання для глибокої діагностики інцидентів.
Головне
APM (Application Performance Monitoring) — це дисципліна управління продуктивністю додатків, що охоплює збір, візуалізацію та аналіз даних роботи програмного забезпечення. На відміну від точкового моніторингу окремих метрик (CPU, пам’ять), APM надає цілісну картину: як додаток поводиться з точки зору користувача, як взаємодіють його компоненти та де виникають вузькі місця.
Концепція APM сформувалась у 2010-х роках з переходом від монолітних додатків до мікросервісної архітектури. Коли кількість сервісів перевищила 10–15 одиниць, традиційні методи моніторингу перестали працювати — неможливо було визначити, який саме сервіс викликав уповільнення всього запиту. APM-рішення вирішили цю проблему через розподілене трасування та автоматичне побудову карти сервісів.
За даними Grand View Research (2024), ринок APM оцінюється в 8,2 мільярда доларів США і зростає на 11,5% щорічно. Основні драйвери — міграція у хмару, зростання кількості мікросервісів та підвищення вимог до якості користувацького досвіду в мобільних додатках та веб-сервісах.
Сучасний APM будується на трьох типах даних, які разом утворюють повну картину стану додатка. Метрики — це числові агрегати: час відповіді, кількість запитів, відсоток помилок. Вони відповідають на питання “що відбувається” та дозволяють настроювати сповіщення за пороговими значеннями.
Трасування (розподілене трасування) відповідає на питання “чому це відбувається.” Кожний вхідний запит простежується через усі мікросервіси, бази даних та зовнішні виклики. APM-система об’єднує метрики та трасування: якщо метрика часу відповіді зросла, розробник переходить на панель трас та бачить точний запит, який викликав уповільнення, з розбивкою по кожному сервісу.
Логи надають контекст — конкретне повідомлення про помилку, значення змінної, стек викликів. Сучасні APM-платформи (Datadog, New Relic, Grafana) пов’язують логи з трасами через спільний trace_id, дозволяючи переходити від графіка метрики до логу конкретного запиту. За даними Datadog (2025), кореляція логів з трасами скорочує середній час діагностики інциденту з 45 до 12 хвилин.
| Сигнал | Питання | Одиниця |
|---|---|---|
| Метрики | Що відбувається? | Числові агрегати |
| Трасування | Чому це відбувається? | Spans та traces |
| Логи | Що саме пішло не так? | Текстові записи |
Класична APM-архітектура складається з трьох рівнів: агент, колектор та бекенд. Агент — це бібліотека, яку вбудовують в додаток або запускають поряд з ним (sidecar). Агент перехоплює вхідні та вихідні виклики, збирає дані часу виконання та надсилає їх на колектор за захищеним каналом.
APM-агент для Java може підключатися через javaagent на рівні JVM, автоматично інструментуючи всі HTTP-запити, виклики баз даних, черги повідомлень та зовнішні API. Для мобільних платформ агент підключається як SDK та збирає метрики з пристрою. New Relic Agent для Android, наприклад, автоматично відстежує всі мережеві запити через OkHttp, HTTP-клієнти та WebView.
import com.newrelic.agent.android.NewRelic;
public class MainApplication extends Application {
public void onCreate() {
super.onCreate();
NewRelic.withApplicationToken("YOUR_TOKEN")
.start(this);
}
}
Цей код ініціалізує New Relic Agent в Android-додатку. Після запуску агент автоматично збирає метрики мережевих запитів, помилки, ANR та дані продуктивності UI без додаткової інструментації кожного екрану. Агент працює в фоновому потоці та не впливає на продуктивність основного інтерфейсу додатка.
Колектор приймає дані від тисяч агентів, агрегує метрики, виконує семплювання трас та зберігає дані в довгостроковому сховищі з можливістю гарячого та холодного зберігання. Бекенд APM надає панелі керування, сповіщення, карти сервісів та API для інтеграції з зовнішніми системами (Slack, PagerDuty, Jira, ServiceNow). Datadog обробляє понад 10 мільйонів точок даних на секунду через свої колектори, розташовані в 20+ регіонах світу для мінімальної затримки передачі.
Apdex (Application Performance Index) — це відкритий стандарт для вимірювання задоволеності користувачів часом відповіді додатка. Значення Apdex обчислюється за формулою: (кількість задоволених користувачів + кількість терплячих користувачів / 2) / загальна кількість користувачів. Результат — число від 0 до 1, де 1 означає, що всі користувачі задоволені.
Пороги Apdex встановлюються індивідуально для кожного додатка. Для мобільних додатків типовий поріг задоволеності — час відповіді до 1,5 секунди, терпимий — до 4,5 секунди. Усе, що перевищує 4,5 секунди, вважається неприйнятним. Apdex score 0,94 та вище вважається відмінним показником для продакшн-середовища.
Apdex використовується не тільки як метрика якості, але й як поріг для сповіщень. Якщо Apdex падає нижче 0,85 протягом 10 хвилин, APM-система надсилає сповіщення черговій команді. Це більш збалансований підхід, ніж прив’язка до абсолютних значень часу відповіді, які можуть коливатися залежно від пори дня та навантаження.
Мобільний APM має свою специфіку: додаток працює на пристрої користувача, який може перебувати в різних мережевих умовах, мати різний об’єм вільної пам’яті та версії ОС. Mobile APM має враховувати всі ці фактори та надавати розбивку метрик за моделями пристроїв, версіями ОС, регіонами та операторами зв’язку.
Мобільні APM-агенти збирають метрики на пристрої та надсилають їх на сервер пачками (batch) з інтервалом 1–5 хвилин. Це мінімізує вплив на трафік користувача. У разі втрати з’єднання дані зберігаються в локальному кеші та надсилаються при наступному підключенні. Firebase Performance та Dynatrace Mobile підтримують автоматичну ретрансляцію при втраті мережі.
До стандартних APM-метрик у мобільній розробці додаються специфічні: час холодного старту, FPS при прокруці, обсяг споживаної пам’яті, частота ANR (Android) та кількість watchdog-термінацій (iOS). New Relic Mobile додатково відстежує перегляди карт, відсоток використання кешу та час рендерінгу конкретних ViewController.
import NewRelic
class ProfileViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
NewRelic.startInteraction(withName: "ProfileView")
}
override func viewDidDisappear(animated: Bool) {
super.viewDidDisappear(animated)
NewRelic.stopCurrentInteraction()
}
}
Код на Swift створює interaction trace для екрану профілю користувача. New Relic автоматично виміряє час завантаження даних, відмалювання UI та всі мережеві запити, виконані під час відображення цього екрану.
Ринок APM налічує десятки рішень, що різняться за глибиною моніторингу, вартістю та підтримуваними платформами. Datadog APM лідер з інтеграції метрик, трас та логів в єдиному інтерфейсі. New Relic пропонує найбільш деталізоване трасування для мобільних платформ. Dynatrace використовує AI-рушій Davis для автоматичного виявлення першопричин проблем.
| Платформа | Мобільний агент | Distributed tracing | Безкоштовний тариф |
|---|---|---|---|
| Datadog | iOS, Android | Так | Ні |
| New Relic | iOS, Android | Так | 100 ГБ/міс |
| Dynatrace | iOS, Android | Так | 15 днів |
| Grafana | Через OpenTelemetry | Так | Так (OSS) |
Вибір APM-платформи залежить від розміру команди, стеку технологій та бюджету. Для стартапів оптимальним є Firebase Performance в комбінації з Grafana для бекенду. Для enterprise-проєктів з високими вимогами до SLA — Datadog або Dynatrace з повним набором інструментів спостережуваності та AI-аналізом першопричин.
Часті запитання
Звичайний моніторинг відстежує інфраструктурні метрики: CPU, пам’ять, диск. APM дивиться на рівень додатка: час виконання конкретних транзакцій, SQL-запитів, HTTP-викликів між мікросервісами. APM може показати, що CPU в нормі, але додаток гальмує через повільний запит до бази даних.
Для одного сервісу достатньо стандартного моніторингу + логування для базового покриття. APM стає необхідним, коли сервісів 5 і більше, і запит проходить через кілька з них за один користувацький сценарій. APM дає відповідь, який саме сервіс уповільнює весь потік запиту та де знаходиться вузьке місце.
APM-агенти споживають 1–3% CPU та 50–200 MB пам’яті на сервері. Вартість ліцензій коливається від 15 до 80 доларів за хост на місяць. Трафік телеметрії становить 1–10 ГБ на день на хост залежно від інтенсивності трасування. OpenTelemetry + Grafana — безкоштовна альтернатива комерційному APM.
Так, мобільні APM-агенти працюють автономно. Вони збирають метрики на пристрої, навіть якщо додаток не має серверної частини: час старту, FPS, краші, мережеві запити до сторонніх API. Дані надсилаються на APM-платформу, коли пристрій підключається до інтернету.
Базова конфігурація APM (пороги, панелі керування, сповіщення) налаштовується один раз та коригується при зміні архітектури або оновленні benchmark-тестів продуктивності. Agent configuration оновлюється автоматично через панель керування APM-платформи без необхідності перевипускати додаток або змінювати код.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також