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 решенията решиха този проблем чрез разпределено проследяване и автоматично изграждане на карта на услугите.

Според данни на Grand View Research (2024), пазарът на APM се оценява на 8,2 милиарда щатски долара и расте с 11,5% годишно. Основни двигатели — миграция към облака, увеличаване на броя на микрослужбите и повишени изисквания към качеството на потребителското изживяване в мобилни приложения и уеб услуги.

Три стълба на APM: метрики, проследяване, логове

Съвременният APM се основава на три типа данни, които заедно формират пълна картина на състоянието на приложението. Метриките — са числови агрегати: време за отговор, брой заявки, процент грешки. Те отговарят на въпроса \u201eкакво се случва\u201c и позволяват настройка на предупреждения на базата на прагови стойности.

Проследяването като свързващ елемент

Проследяването (разпределено проследяване) отговаря на въпроса \u201eзащо се случва това\u201c. Всяка входяща заявка се проследява през всички микрослужби, бази данни и външни повиквания. APM системата свързва метриките и проследяването: ако метриката за време за отговор се увеличи, разработчикът преминава към таблото за проследяване и вижда точната заявка, причинила забавянето, с разбивка по всяка услуга.

Логване за задълбочаване

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

СигналВъпросЕдиница
МетрикиКакво се случва?Числови агрегати
ПроследяванеЗащо се случва това?Спанове и проследявания
ЛоговеКакво точно се обърка?Текстови записи

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

Класическата APM архитектура се състои от три нива: агент, колектор и backend. Агентът — е библиотека, вградена в приложението или стартирана до него (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 без допълнително инструментиране на всеки екран. Агентът работи на заден план и не влияе на производителността на основния интерфейс на приложението.

Колектор и backend

Колекторът приема данни от хиляди агенти, агрегира метриките, извършва семплиране на проследяванията и съхранява данните в дългосрочно хранилище с възможност за горещо и студено съхранение. Backend-ът на 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 и нагоре се счита за отличен показател за производствена среда.

Apdex се използва не само като метрика за качество, но и като праг за предупреждения. Ако Apdex падне под 0,85 за 10 минути, APM системата изпраща уведомление на дежурния екип. Това е по-балансиран подход от обвързването с абсолютни стойности на времето за отговор, които могат да варират в зависимост от времето на деня и натоварването.

APM за мобилни приложения

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

Събиране на данни от устройството

Мобилните APM агенти събират метрики на устройството и ги изпращат на сървъра на партиди (batch) с интервал от 1–5 минути. Това минимизира влиянието върху трафика на потребителя. В случай на загуба на връзка, данните се запазват в локалния кеш и се изпращат при следващото свързване. Firebase Performance и Dynatrace 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 за автоматично откриване на коренни причини за проблеми.

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

Изборът на APM платформа зависи от размера на екипа, технологичния стек и бюджета. За стартиращи компании Firebase Performance в комбинация с Grafana за backend е оптимален. За 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 за мобилно приложение без backend?

Да, мобилните APM агенти работят автономно. Те събират метрики на устройството, дори ако приложението няма сървърна част: време за стартиране, FPS, сривове, мрежови заявки към външни API. Данните се изпращат до APM платформата, когато устройството се свърже с интернет.

Колко често трябва да се актуализира конфигурацията на APM?

Основната конфигурация на APM (прагове, табла, предупреждения) се настройва веднъж и се коригира при промяна на архитектурата или тестове за производителност. Agent configuration се актуализира автоматично чрез панела за управление на APM платформата без необходимост от повторно пускане на приложението или промяна на кода.

Резюме

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

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

IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също