APM (Application Performance Monitoring) — je komplexní přístup k pozorování výkonu softwaru, zahrnující sběr metrik, trasování požadavků a diagnostiku chyb v reálném čase. Podle údajů Gartner IT Glossary, 2024, APM spojuje tři klíčové oblasti: monitorování uživatelského prožitku, detekci selhání v architektuře aplikace a analýzu dat běhu pro hlubokou diagnostiku incidentů.
Hlavní body
APM (Application Performance Monitoring) — je disciplína řízení výkonu aplikací, která zahrnuje sběr, vizualizaci a analýzu dat o běhu softwaru. Na rozdíl od bodového monitorování jednotlivých metrik (CPU, paměť) poskytuje APM celistvý obraz: jak se aplikace chová z pohledu uživatele, jak její komponenty interagují a kde vznikají úzká hrdla.
Koncepce APM se zformovala v roce 2010 s přechodem od monolitických aplikací k mikroslužbové architektuře. Když počet služeb překročil 10–15 jednotek, tradiční metody monitorování přestaly fungovat — nebylo možné určit, která služba způsobila zpomalení celého požadavku. Řešení APM vyřešila tento problém prostřednictvím distribuovaného trasování a automatického vytváření mapy služeb.
Podle údajů Grand View Research (2024) je trh APM oceněn na 8,2 miliardy amerických dolarů a ročně roste o 11,5 %. Hlavní hybné síly — migrace do cloudu, nárůst počtu mikroslužeb a zvýšené požadavky na kvalitu uživatelského prožitku v mobilních aplikacích a webových službách.
Moderní APM je postaveno na třech typech dat, která dohromady tvoří úplný obraz stavu aplikace. Metriky — jsou numerické agregáty: doba odezvy, počet požadavků, procento chyb. Odpovídají na otázku „co se děje" a umožňují nastavení výstrah na základě prahových hodnot.
Trasování (distribuované trasování) odpovídá na otázku „proč se to děje". Každý příchozí požadavek je sledován přes všechny mikroslužby, databáze a externí volání. Systém APM spojuje metriky a trasování: pokud metrika doby odezvy vzrostla, vývojář přejde na dashboard trasování a vidí přesný požadavek, který způsobil zpomalení, s rozpisem na každou službu.
Logy poskytují kontext — konkrétní chybovou zprávu, hodnotu proměnné, zásobník volání. Moderní APM platformy (Datadog, New Relic, Grafana) propojují logy s trasováním prostřednictvím společného trace_id, což umožňuje přechod z grafu metriky na log konkrétního požadavku. Podle údajů Datadog (2025) korelace logů s trasováním zkracuje průměrnou dobu diagnostiky incidentu ze 45 na 12 minut.
| Signál | Otázka | Jednotka |
|---|---|---|
| Metriky | Co se děje? | Numerické agregáty |
| Trasování | Proč se to děje? | Spany a stopy |
| Logy | Co přesně se pokazilo? | Textové záznamy |
Klasická architektura APM se skládá ze tří úrovní: agent, kolektor a backend. Agent — je knihovna vložená do aplikace nebo spuštěná vedle ní (sidecar). Agent zachycuje příchozí a odchozí volání, shromažďuje data o době běhu a odesílá je kolektoru přes zabezpečený kanál.
APM agent pro Javu se může připojit prostřednictvím javaagent na úrovni JVM, automaticky instrumentovat všechny HTTP požadavky, databázová volání, fronty zpráv a externí API. Pro mobilní platformy se agent připojuje jako SDK a sbírá metriky ze zařízení. New Relic Agent pro Android například automaticky sleduje všechny síťové požadavky přes OkHttp, HTTP klienty a WebView.
import com.newrelic.agent.android.NewRelic;
public class MainApplication extends Application {
public void onCreate() {
super.onCreate();
NewRelic.withApplicationToken("YOUR_TOKEN")
.start(this);
}
}
Kód inicializuje New Relic Agent v Android aplikaci. Po spuštění agent automaticky sbírá metriky síťových požadavků, chyby, ANR a data o výkonu UI bez dodatečné instrumentace každé obrazovky. Agent pracuje na pozadí a neovlivňuje výkon hlavního rozhraní aplikace.
Kolektor přijímá data od tisíců agentů, agreguje metriky, provádí vzorkování tras a ukládá data do dlouhodobého úložiště s možností horkého a studeného ukládání. Backend APM poskytuje dashboardy, výstrahy, mapy služeb a API pro integraci s externími systémy (Slack, PagerDuty, Jira, ServiceNow). Datadog zpracovává více než 10 milionů datových bodů za sekundu prostřednictvím svých kolektorů umístěných ve 20+ regionech světa pro minimální latenci přenosu.
Apdex (Application Performance Index) — otevřený standard pro měření spokojenosti uživatelů s dobou odezvy aplikace. Hodnota Apdex se vypočítá podle vzorce: (počet spokojených uživatelů + počet tolerantních uživatelů / 2) / celkový počet uživatelů. Výsledkem je číslo od 0 do 1, kde 1 znamená, že všichni uživatelé jsou spokojeni.
Prahové hodnoty Apdex se nastavují individuálně pro každou aplikaci. Pro mobilní aplikace je typická prahová hodnota spokojenosti — doba odezvy do 1,5 sekundy, tolerantní — do 4,5 sekundy. Vše, co překračuje 4,5 sekundy, je považováno za nepřijatelné. Apdex score 0,94 a výše je považován za vynikající ukazatel pro produkční prostředí.
Apdex se používá nejen jako metrika kvality, ale také jako prahová hodnota pro výstrahy. Pokud Apdex klesne pod 0,85 po dobu 10 minut, systém APM odešle oznámení službukonajícímu týmu. To je vyváženější přístup než vázání na absolutní hodnoty doby odezvy, které mohou kolísat v závislosti na denní době a zatížení.
Mobilní APM má svou specifiku: aplikace běží na zařízení uživatele, které se může nacházet v různých síťových podmínkách, mít různé množství volné paměti a verzi OS. Mobile APM musí všechny tyto faktory zohlednit a poskytovat rozpis metrik podle modelů zařízení, verzí OS, regionů a operátorů.
Mobilní APM agenti sbírají metriky na zařízení a odesílají je na server v dávkách (batch) v intervalu 1–5 minut. To minimalizuje dopad na provoz uživatele. Při ztrátě spojení jsou data uložena v lokální cache a odeslána při dalším připojení. Firebase Performance a Dynatrace Mobile podporují automatickou retransmisi při ztrátě sítě.
Ke standardním metrikám APM v mobilním vývoji se přidávají specifické: doba studeného startu, FPS při scrollování, množství spotřebované paměti, frekvence ANR (Android) a počet watchdog terminací (iOS). New Relic Mobile navíc sleduje map views, procento využití cache a dobu vykreslování konkrétních 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()
}
}
Kód ve Swiftu vytváří interaction trace pro obrazovku profilu uživatele. New Relic automaticky změří dobu načítání dat, vykreslování UI a všechny síťové požadavky provedené během zobrazení této obrazovky.
Trh APM je zastoupen desítkami řešení, která se liší hloubkou monitorování, cenou a podporovanými platformami. Datadog APM vede v integraci metrik, tras a logů v jednotném rozhraní. New Relic nabízí nejpodrobnější trasování pro mobilní platformy. Dynatrace využívá AI engine Davis pro automatickou detekci hlavních příčin problémů.
| Platforma | Mobilní agent | Distributed tracing | Bezplatný tarif |
|---|---|---|---|
| Datadog | iOS, Android | Ano | Ne |
| New Relic | iOS, Android | Ano | 100 GB/měs |
| Dynatrace | iOS, Android | Ano | 15 dní |
| Grafana | Přes OpenTelemetry | Ano | Ano (OSS) |
Výběr APM platformy závisí na velikosti týmu, technologickém stacku a rozpočtu. Pro startupy je optimální Firebase Performance v kombinaci s Grafanou pro backend. Pro enterprise projekty s vysokými požadavky na SLA — Datadog nebo Dynatrace s plnou sadou nástrojů observability a podporou AI analýzy hlavních příčin incidentů.
Často kladené otázky
Běžné monitorování sleduje infrastrukturní metriky: CPU, paměť, disk. APM se dívá na úroveň aplikace: dobu běhu konkrétních transakcí, SQL dotazů, HTTP volání mezi mikroslužbami. APM může ukázat, že CPU je v normě, ale aplikace zpomaluje kvůli pomalému dotazu do databáze.
Pro jednu službu stačí standardní monitorování + logování pro základní pokrytí. APM se stává nezbytným, když je služeb 5 a více a požadavek prochází několika z nich v jednom uživatelském scénáři. APM dává odpověď, která služba zpomaluje celý tok požadavku a kde se nachází úzké hrdlo.
APM agenti spotřebovávají 1–3 % CPU a 50–200 MB paměti na serveru. Cena licencí se pohybuje od 15 do 80 dolarů za hostitele měsíčně. Telemetrický provoz činí 1–10 GB denně na hostitele v závislosti na intenzitě trasování. OpenTelemetry + Grafana — bezplatná alternativa ke komerčním APM.
Ano, mobilní APM agenti pracují autonomně. Sbírají metriky na zařízení, i když aplikace nemá serverovou část: dobu spuštění, FPS, pády, síťové požadavky na externí API. Data jsou odesílána na APM platformu, když se zařízení připojí k internetu.
Základní konfigurace APM (prahové hodnoty, dashboardy, výstrahy) se nastavuje jednou a upravuje se při změně architektury nebo benchmarkových testů výkonu. Agent configuration se aktualizuje automaticky prostřednictvím panelu správy APM platformy bez nutnosti znovu vydávat aplikaci nebo měnit kód.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také