APM: co to jest, metryki i jak działa

Autor: IT Sectr Opublikowano: 2026-05-29 Czas czytania: 8 min

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, system monitorowania wydajności aplikacji na wszystkich poziomach: klient, sieć, serwer, infrastruktura.
  • Trzy filary APM — metryki, śledzenie i logi, połączone w jedną platformę observability do kompleksowej analizy incydentów.
  • Agent-based APM — instalacja agenta programowego na serwerze aplikacji do zbierania szczegółowych danych czasu wykonania.
  • Service map — graf zależności między mikrousługami, automatycznie budowany na podstawie danych śledzenia.
  • Apdex score — standaryzowany wskaźnik satysfakcji użytkownika z czasu odpowiedzi aplikacji.

Czym jest APM w rozwoju

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.

Trzy filary APM: metryki, śledzenie, logi

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 jako łącznik

Ś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ę.

Logowanie dla głębi

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łPytanieJednostka
MetrykiCo się dzieje?Agregaty liczbowe
ŚledzenieDlaczego to się dzieje?Spany i trace
LogiCo dokładnie poszło nie tak?Wpisy tekstowe

Architektura APM: agenty i kolektory

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.

Działanie agenta APM

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.

java
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 i backend

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 score i SLA monitorowania

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.

APM dla aplikacji mobilnych

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.

Zbieranie danych z urządzenia

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.

Kluczowe metryki mobilne

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.

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()
    }
}

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.

Porównanie popularnych platform APM

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.

PlatformaAgent mobilnyDistributed tracingDarmowy taryf
DatadogiOS, AndroidTakNie
New ReliciOS, AndroidTak100 GB/mies
DynatraceiOS, AndroidTak15 dni
GrafanaPrzez OpenTelemetryTakTak (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

Czym APM różni się od zwykłego monitorowania serwerów?

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.

Czy APM jest potrzebny dla jednej mikrousługi?

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.

Jak APM wpływa na koszt infrastruktury?

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.

Czy można używać APM dla aplikacji mobilnej bez backendu?

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.

Jak często trzeba aktualizować konfigurację APM?

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

  • APM — kompleksowe rozwiązanie do monitorowania wydajności aplikacji, łączące metryki, śledzenie i logi.
  • Distributed tracing — kluczowa różnica APM od klasycznego monitorowania, umożliwiająca prześledzenie ścieżki zapytania przez wszystkie mikrousługi.
  • Agenty APM są wdrażane w aplikacji i automatycznie zbierają dane czasu wykonania, zapytań HTTP i wywołań BD.
  • Apdex score — standaryzowana metryka satysfakcji użytkowników, obliczana na podstawie progów czasu odpowiedzi.
  • Mobile APM uwzględnia specyfikę urządzeń: zimny start, FPS, ANR, warunki sieciowe i wersje systemów operacyjnych.
  • OpenTelemetry pozwala zbudować system APM bez przywiązania do dostawcy, używając otwartego standardu zbierania danych.
  • Wybór platformy APM zależy od skali projektu: Firebase dla startupów, Datadog lub Dynatrace dla architektur enterprise z wysokimi wymaganiami observability.

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.

Omów projekt

Przeczytaj również