APM (Application Performance Monitoring) — to kompleksowe podejście do obserwacji wydajności oprogramowania, obejmujące zbieranie metryk, śledzenie zapytań i diagnozowanie błędów w czasie rzeczywistym. Według danych Gartner IT Glossary, 2024, APM łączy trzy kluczowe obszary: monitorowanie doświadczeń użytkownika, wykrywanie awarii w architekturze aplikacji oraz analitykę danych wykonawczych do głębokiej diagnostyki incydentów.
Najważniejsze
APM (Application Performance Monitoring) — to dyscyplina zarządzania wydajnością aplikacji, obejmująca zbieranie, wizualizację i analizę danych o działaniu oprogramowania. W przeciwieństwie do punktowego monitorowania pojedynczych metryk (CPU, pamięć), APM zapewnia całościowy obraz: jak aplikacja zachowuje się z perspektywy użytkownika, jak współdziałają jej komponenty i gdzie powstają wąskie gardła.
Koncepcja APM ukształtowała się w latach 2010. wraz z przejściem od monolitycznych aplikacji do architektury mikrousługowej. Gdy liczba serwisów przekroczyła 10–15 jednostek, tradycyjne metody monitorowania przestały działać — nie można było określić, który serwis spowodował spowolnienie całego zapytania. Rozwiązania APM rozwiązały ten problem poprzez distributed tracing i automatyczne budowanie mapy serwisów.
Według danych Grand View Research (2024), rynek APM jest wyceniany na 8,2 miliarda dolarów amerykańskich i rośnie o 11,5% rocznie. Główne czynniki napędowe — migracja do chmury, wzrost liczby mikrousług i podwyższone wymagania co do jakości doświadczeń użytkownika w aplikacjach mobilnych i serwisach webowych.
Nowoczesny APM opiera się na trzech typach danych, które razem tworzą pełny obraz stanu aplikacji. Metryki — to agregaty liczbowe: czas odpowiedzi, liczba zapytań, procent błędów. Odpowiadają na pytanie „co się dzieje” i pozwalają konfigurować alerty według wartości progowych.
Śledzenie (distributed tracing) odpowiada na pytanie „dlaczego to się dzieje”. Każde przychodzące zapytanie jest śledzone przez wszystkie mikrousługi, bazy danych i wywołania zewnętrzne. System APM łączy metryki i śledzenie: jeśli metryka czasu odpowiedzi wzrosła, programista przechodzi do pulpitu śladów i widzi dokładne zapytanie, które spowodowało spowolnienie, z podziałem na każdą usługę.
Logi dostarczają kontekstu — konkretny komunikat o błędzie, wartość zmiennej, stos wywołań. Nowoczesne platformy APM (Datadog, New Relic, Grafana) łączą logi ze śladami przez wspólny trace_id, umożliwiając przejście od wykresu metryki do logu konkretnego zapytania. Według danych Datadog (2025), korelacja logów ze śladami skraca średni czas diagnostyki incydentu z 45 do 12 minut.
| Sygnał | Pytanie | Jednostka |
|---|---|---|
| Metryki | Co się dzieje? | Agregaty liczbowe |
| Śledzenie | Dlaczego to się dzieje? | Spany i trace |
| Logi | Co dokładnie poszło nie tak? | Wpisy tekstowe |
Klasyczna architektura APM składa się z trzech poziomów: agent, kolektor i backend. Agent — to biblioteka wdrażana w aplikacji lub uruchamiana obok niej (sidecar). Agent przechwytuje przychodzące i wychodzące wywołania, zbiera dane o czasie wykonania i wysyła je do kolektora bezpiecznym kanałem.
Agent APM dla Javy może łączyć się poprzez javaagent na poziomie JVM, automatycznie instrumentując wszystkie zapytania HTTP, wywołania baz danych, kolejki komunikatów i zewnętrzne API. Dla platform mobilnych agent łączy się jako SDK i zbiera metryki z urządzenia. New Relic Agent dla Androida na przykład automatycznie śledzi wszystkie zapytania sieciowe przez OkHttp, klienty HTTP i WebView.
import com.newrelic.agent.android.NewRelic;
public class MainApplication extends Application {
public void onCreate() {
super.onCreate();
NewRelic.withApplicationToken("YOUR_TOKEN")
.start(this);
}
}
Kod inicjalizuje New Relic Agent w aplikacji Android. Po uruchomieniu agent automatycznie zbiera metryki zapytań sieciowych, błędy, ANR i dane o wydajności UI bez dodatkowej instrumentacji każdego ekranu. Agent działa w tle i nie wpływa na wydajność głównego interfejsu aplikacji.
Kolektor przyjmuje dane od tysięcy agentów, agreguje metryki, wykonuje próbkowanie śladów i zapisuje dane w długoterminowym magazynie z możliwością przechowywania gorącego i zimnego. Backend APM udostępnia pulpity, alerty, mapy serwisów i API do integracji z systemami zewnętrznymi (Slack, PagerDuty, Jira, ServiceNow). Datadog przetwarza ponad 10 milionów punktów danych na sekundę przez swoje kolektory rozmieszczone w 20+ regionach świata dla minimalnego opóźnienia transmisji.
Apdex (Application Performance Index) — otwarty standard pomiaru satysfakcji użytkowników z czasu odpowiedzi aplikacji. Wartość Apdex oblicza się według wzoru: (liczba zadowolonych użytkowników + liczba tolerujących użytkowników / 2) / całkowita liczba użytkowników. Wynik to liczba od 0 do 1, gdzie 1 oznacza, że wszyscy użytkownicy są zadowoleni.
Progi Apdex są ustawiane indywidualnie dla każdej aplikacji. Dla aplikacji mobilnych typowy próg zadowolenia to czas odpowiedzi do 1,5 sekundy, tolerowany — do 4,5 sekundy. Wszystko, co przekracza 4,5 sekundy, jest uznawane za niedopuszczalne. Apdex score 0,94 i wyżej uważa się za doskonały wskaźnik dla środowiska produkcyjnego.
Apdex jest używany nie tylko jako metryka jakości, ale także jako próg dla alertów. Jeśli Apdex spadnie poniżej 0,85 przez 10 minut, system APM wysyła powiadomienie do zespołu dyżurnego. Jest to bardziej zrównoważone podejście niż opieranie się na absolutnych wartościach czasu odpowiedzi, które mogą się wahać w zależności od pory dnia i obciążenia.
Mobilny APM ma swoją specyfikę: aplikacja działa na urządzeniu użytkownika, które może znajdować się w różnych warunkach sieciowych, mieć różną ilość wolnej pamięci i wersję systemu operacyjnego. Mobile APM musi uwzględniać wszystkie te czynniki i dostarczać podział metryk według modeli urządzeń, wersji systemów operacyjnych, regionów i operatorów sieciowych.
Mobilne agenty APM zbierają metryki na urządzeniu i wysyłają je na serwer paczkami (batch) w odstępie 1–5 minut. Minimalizuje to wpływ na ruch sieciowy użytkownika. W przypadku utraty połączenia dane są przechowywane w lokalnym cache i wysyłane przy następnym połączeniu. Firebase Performance i Dynatrace Mobile obsługują automatyczną retransmisję w przypadku utraty sieci.
Do standardowych metryk APM w rozwoju mobilnym dodawane są specyficzne: czas zimnego startu, FPS podczas przewijania, ilość zużywanej pamięci, częstotliwość ANR (Android) i liczba terminacji watchdog (iOS). New Relic Mobile dodatkowo śledzi map views, procent wykorzystania cache i czas renderowania konkretnych 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()
}
}
Kod w Swift tworzy interaction trace dla ekranu profilu użytkownika. New Relic automatycznie zmierzy czas ładowania danych, renderowania UI i wszystkich zapytań sieciowych wykonanych podczas wyświetlania tego ekranu.
Rynek APM reprezentowany jest przez dziesiątki rozwiązań różniących się głębokością monitorowania, kosztem i obsługiwanymi platformami. Datadog APM prowadzi pod względem integracji metryk, śladów i logów w jednym interfejsie. New Relic oferuje najbardziej szczegółowe śledzenie dla platform mobilnych. Dynatrace wykorzystuje silnik AI Davis do automatycznego wykrywania przyczyn źródłowych problemów.
| Platforma | Agent mobilny | Distributed tracing | Darmowy taryf |
|---|---|---|---|
| Datadog | iOS, Android | Tak | Nie |
| New Relic | iOS, Android | Tak | 100 GB/mies |
| Dynatrace | iOS, Android | Tak | 15 dni |
| Grafana | Przez OpenTelemetry | Tak | Tak (OSS) |
Wybór platformy APM zależy od wielkości zespołu, stosu technologicznego i budżetu. Dla startupów optymalny jest Firebase Performance w połączeniu z Grafaną dla backendu. Dla projektów enterprise z wysokimi wymaganiami SLA — Datadog lub Dynatrace z pełnym zestawem narzędzi observability i wsparciem AI do analizy przyczyn źródłowych incydentów.
Często zadawane pytania
Zwykłe monitorowanie śledzi metryki infrastrukturalne: CPU, pamięć, dysk. APM patrzy na poziom aplikacji: czas wykonania konkretnych transakcji, zapytań SQL, wywołań HTTP między mikrousługami. APM może pokazać, że CPU jest w normie, ale aplikacja zwalnia z powodu wolnego zapytania do bazy danych.
Dla jednego serwisu wystarczy standardowe monitorowanie + logowanie dla podstawowego pokrycia. APM staje się niezbędny, gdy serwisów jest 5 i więcej, a zapytanie przechodzi przez kilka z nich w jednym scenariuszu użytkownika. APM daje odpowiedź, który serwis spowalnia cały przepływ zapytania i gdzie znajduje się wąskie gardło.
Agenty APM zużywają 1–3% CPU i 50–200 MB pamięci na serwerze. Koszt licencji waha się od 15 do 80 dolarów za host miesięcznie. Ruch telemetryczny wynosi 1–10 GB dziennie na host w zależności od intensywności śledzenia. OpenTelemetry + Grafana — darmowa alternatywa dla komercyjnych APM.
Tak, mobilne agenty APM działają autonomicznie. Zbierają metryki na urządzeniu, nawet jeśli aplikacja nie ma części serwerowej: czas startu, FPS, crashe, zapytania sieciowe do zewnętrznych API. Dane są wysyłane do platformy APM, gdy urządzenie połączy się z internetem.
Podstawowa konfiguracja APM (progi, pulpity, alerty) jest ustawiana raz i korygowana przy zmianie architektury lub testów porównawczych wydajności. Agent configuration aktualizuje się automatycznie przez panel zarządzania platformą APM bez konieczności ponownego wydawania aplikacji lub zmiany kodu.
Podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również