APM: что это, метрики и как работает

Автор: IT Sectr Опубликовано: 2026-05-29 Время чтения: 8 мин

APM (Application Performance Monitoring) — это комплексный подход к наблюдению за производительностью программного обеспечения, включающий сбор метрик, трассировку запросов и диагностику ошибок в реальном времени. По данным Gartner IT Glossary, 2024, APM объединяет три ключевых направления: мониторинг пользовательского опыта, обнаружение сбоев в архитектуре приложения и аналитику данных выполнения для глубокой диагностики инцидентов.

Главное

  • APM — Application Performance Monitoring, система наблюдения за производительностью приложений на всех уровнях: клиент, сеть, сервер, инфраструктура.
  • Три столпа APM — метрики, трассировка и логи, объединённые в единую observability-платформу для сквозного анализа инцидентов.
  • Agent-based APM — установка программного агента на сервер приложения для сбора детализированных данных времени выполнения.
  • Service map — граф зависимостей между микросервисами, автоматически строящийся на основе данных трассировки.
  • Apdex score — стандартизированный показатель удовлетворённости пользователя временем отклика приложения.

Что такое APM в разработке

APM (Application Performance Monitoring) — это дисциплина управления производительностью приложений, охватывающая сбор, визуализацию и анализ данных о работе программного обеспечения. В отличие от точечного мониторинга отдельных метрик (CPU, память), APM предоставляет целостную картину: как приложение ведёт себя с точки зрения пользователя, как взаимодействуют его компоненты и где возникают узкие места.

Концепция APM сформировалась в 2010-х годах с переходом от монолитных приложений к микросервисной архитектуре. Когда количество сервисов превысило 10–15 единиц, традиционные методы мониторинга перестали работать — невозможно было определить, какой именно сервис вызвал замедление всего запроса. APM-решения решили эту проблему через distributed tracing и автоматическое построение карты сервисов.

По данным Grand View Research (2024), рынок APM оценивается в 8.2 миллиарда долларов США и растёт на 11.5% ежегодно. Основные драйверы — миграция в облако, рост числа микросервисов и повышение требований к качеству пользовательского опыта в мобильных приложениях и веб-сервисах.

Три столпа APM: метрики, трассировка, логи

Современный APM строится на трёх типах данных, которые вместе образуют полную картину состояния приложения. Метрики — это числовые агрегаты: время ответа, количество запросов, процент ошибок. Они отвечают на вопрос "что происходит" и позволяют настраивать алерты по пороговым значениям.

Трассировка как связующее звено

Трассировка (distributed tracing) отвечает на вопрос "почему это происходит". Каждый входящий запрос прослеживается через все микросервисы, базы данных и внешние вызовы. APM-система объединяет метрики и трассировку: если метрика времени ответа выросла, разработчик переходит к дашборду трасс и видит точный запрос, вызвавший замедление, с разбивкой по каждому сервису.

Логирование для глубины

Логи дают контекст — конкретное сообщение об ошибке, значение переменной, стек вызовов. Современные APM-платформы (Datadog, New Relic, Grafana) связывают логи с трассами через общий trace_id, позволяя переходить от графика метрики к логу конкретного запроса. По данным Datadog (2025), корреляция логов с трассами сокращает среднее время диагностики инцидента с 45 до 12 минут.

СигналВопросЕдиница
МетрикиЧто происходит?Числовые агрегаты
ТрассировкаПочему это происходит?Spans и traces
ЛогиЧто именно пошло не так?Текстовые записи

Архитектура APM: агенты и коллекторы

Классическая APM-архитектура состоит из трёх уровней: агент, коллектор и бэкенд. Агент — это библиотека, внедряемая в приложение или запускаемая рядом с ним (sidecar). Агент перехватывает входящие и исходящие вызовы, собирает данные о времени выполнения и отправляет их в коллектор по защищённому каналу.

Работа APM-агента

APM-агент для Java может подключаться через javaagent на уровне JVM, автоматически инструментируя все HTTP-запросы, вызовы баз данных, очереди сообщений и внешние API. Для мобильных платформ агент подключается как SDK и собирает метрики с устройства. New Relic Agent для Android, например, автоматически отслеживает все сетевые запросы через OkHttp, HTTP-клиенты и WebView.

java
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 score и SLA мониторинга

Apdex (Application Performance Index) — открытый стандарт для измерения удовлетворённости пользователей временем отклика приложения. Значение Apdex вычисляется по формуле: (количество довольных пользователей + количество терпимых пользователей / 2) / общее количество пользователей. Результат — число от 0 до 1, где 1 означает, что все пользователи довольны.

Пороги Apdex задаются индивидуально для каждого приложения. Для мобильных приложений типичный порог удовлетворённости — время ответа до 1.5 секунд, терпимый — до 4.5 секунд. Всё, что превышает 4.5 секунды, считается неприемлемым. Apdex score 0.94 и выше считается отличным показателем для production-среды.

Apdex используется не только как метрика качества, но и как порог для алертов. Если Apdex падает ниже 0.85 в течение 10 минут, APM-система отправляет уведомление дежурной команде. Это более сбалансированный подход, чем привязка к абсолютным значениям времени ответа, которые могут колебаться в зависимости от времени суток и нагрузки.

APM для мобильных приложений

Мобильный APM имеет свою специфику: приложение работает на устройстве пользователя, которое может находиться в разных сетевых условиях, иметь разный объём свободной памяти и версию ОС. Mobile APM должен учитывать все эти факторы и предоставлять разбивку метрик по моделям устройств, версиям ОС, регионам и операторам связи.

Сбор данных с устройства

Мобильные APM-агенты собирают метрики на устройстве и отправляют их на сервер пачками (batch) с интервалом 1–5 минут. Это минимизирует влияние на трафик пользователя. В случае потери соединения данные сохраняются в локальном кэше и отправляются при следующем подключении. Firebase Performance и Dynatrace Mobile поддерживают автоматическую ретрансляцию при потере сети.

Ключевые mobile-метрики

К стандартным APM-метрикам в мобильной разработке добавляются специфичные: время холодного старта, FPS при скролле, объём потребляемой памяти, частота ANR (Android) и количество watchdog-терминаций (iOS). New Relic Mobile дополнительно отслеживает map views, процент использования кэша и время рендеринга конкретных ViewController.

swift
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-платформ

Рынок APM представлен десятками решений, различающихся по глубине мониторинга, стоимости и поддерживаемым платформам. Datadog APM лидирует по интеграции метрик, трасс и логов в едином интерфейсе. New Relic предлагает наиболее детализированную трассировку для мобильных платформ. Dynatrace использует AI-движок Davis для автоматического обнаружения корневых причин проблем.

ПлатформаМобильный агентDistributed tracingБесплатный тариф
DatadogiOS, AndroidДаНет
New ReliciOS, AndroidДа100 GB/мес
DynatraceiOS, AndroidДа15 дней
GrafanaЧерез OpenTelemetryДаДа (OSS)

Выбор APM-платформы зависит от размера команды, стека технологий и бюджета. Для стартапов оптимален Firebase Performance в комбинации с Grafana для бэкенда. Для enterprise-проектов с высокими требованиями к SLA — Datadog или Dynatrace с полным набором observability-инструментов и поддержкой AI-анализа первопричин инцидентов.

Часто задаваемые вопросы

Чем APM отличается от обычного мониторинга серверов?

Обычный мониторинг отслеживает инфраструктурные метрики: CPU, память, диск. APM смотрит на уровень приложения: время выполнения конкретных транзакций, SQL-запросов, HTTP-вызовов между микросервисами. APM может показать, что CPU в норме, но приложение тормозит из-за медленного запроса к базе данных.

Нужен ли APM для одного микросервиса?

Для одного сервиса достаточно стандартного мониторинга + логирования для базового покрытия. APM становится необходимым, когда сервисов 5 и больше, и запрос проходит через несколько из них за один пользовательский сценарий. APM даёт ответ, какой именно сервис тормозит весь поток запроса и где находится узкое место.

Как APM влияет на стоимость инфраструктуры?

APM-агенты потребляют 1–3% CPU и 50–200 MB памяти на сервере. Стоимость лицензий варьируется от 15 до 80 долларов за хост в месяц. Трафик телеметрии составляет 1–10 GB в день на хост в зависимости от интенсивности трассировки. OpenTelemetry + Grafana — бесплатная альтернатива коммерческим APM.

Можно ли использовать APM для мобильного приложения без бэкенда?

Да, мобильные APM-агенты работают автономно. Они собирают метрики на устройстве, даже если приложение не имеет серверной части: время старта, FPS, краши, сетевые запросы к сторонним API. Данные отправляются в APM-платформу, когда устройство подключается к интернету.

Как часто нужно обновлять конфигурацию APM?

Базовая конфигурация APM (пороги, дашборды, алерты) настраивается один раз и корректируется при изменении архитектуры или benchmark-тестов производительности. Agent configuration обновляется автоматически через панель управления APM-платформы без необходимости перевыпускать приложение или изменять код.

Итоги

  • APM — комплексное решение для мониторинга производительности приложений, объединяющее метрики, трассировку и логи.
  • Distributed tracing — ключевое отличие APM от классического мониторинга, позволяющее проследить путь запроса через все микросервисы.
  • APM-агенты внедряются в приложение и автоматически собирают данные времени выполнения, HTTP-запросов и вызовов БД.
  • Apdex score — стандартизированная метрика удовлетворённости пользователей, рассчитываемая на основе порогов времени отклика.
  • Mobile APM учитывает специфику устройств: холодный старт, FPS, ANR, сетевые условия и версии ОС.
  • OpenTelemetry позволяет построить APM-систему без привязки к вендору, используя открытый стандарт сбора данных.
  • Выбор APM-платформы определяется масштабом проекта: Firebase для стартапов, Datadog или Dynatrace для enterprise-архитектур с высокими требованиями к observability.

Мы разработаем мобильное приложение под ключ

IT Sectr создаёт приложения для iOS и Android для стартапов и бизнеса с 2017 года. Мы проконсультируем вас и предложим наилучшее решение.

Обсудить проект

Читайте также