Nodea — logo

APM

APM (Application Performance Monitoring, monitorowanie wydajności aplikacji) to zestaw praktyk i narzędzi służących do mierzenia, jak aplikacja zachowuje się w środku — od czasu odpowiedzi pojedynczego żądania, przez wydajność zapytań do bazy danych, po liczbę i rodzaj błędów. Celem APM jest wykrywanie i diagnozowanie problemów wydajnościowych, zanim zamienią się w awarię lub odpływ użytkowników.

Jak działa APM?

Sercem APM jest agent lub biblioteka instrumentująca kod aplikacji (coraz częściej w otwartym standardzie OpenTelemetry). Instrumentacja rejestruje każdą transakcję — np. żądanie HTTP — i rozbija ją na odcinki (spans): czas w kontrolerze, czas każdego zapytania SQL, wywołania zewnętrznych API, operacje w cache. Dane trafiają do serwera analitycznego, który agreguje je w metryki i wizualizacje. Typowe elementy systemu APM to:

  • distributed tracing — śledzenie jednej transakcji przez wiele usług (istotne w mikroserwisach);
  • metryki — percentyle czasów odpowiedzi (p95, p99), przepustowość, wskaźnik błędów, Apdex;
  • rejestrowanie wyjątków — pełne ślady stosu z kontekstem żądania;
  • alerty — powiadomienia, gdy metryka przekroczy próg lub odchyli się od normy.

Zastosowanie w praktyce

APM najwięcej daje tam, gdzie „strona działa wolno” trzeba zamienić na konkret: które zapytanie, w którym module, od kiedy. Klasyczny scenariusz to sklep internetowy, w którym po wdrożeniu nowej wersji rośnie TTFB — ślad transakcji wskazuje np. brakujący indeks w bazie lub nadmiarowe zapytania w pętli (problem N+1). Popularne narzędzia to New Relic, Datadog, Sentry, Elastic APM czy samodzielnie hostowane stosy z Grafaną i Tempo.

APM warto łączyć z zewnętrznym monitoringiem uptime i analizą logów serwera — razem tworzą pełny obraz observability: uptime mówi, że coś się dzieje, logi co się wydarzyło, a APM dlaczego. Na własnym VPS stos APM można postawić samodzielnie; przy usługach zarządzanych zwykle dostarcza go operator.

Powiązane pojęcia

Najczęstsze pytania

Czym APM różni się od monitoringu dostępności (uptime)?

Monitoring uptime sprawdza z zewnątrz, czy usługa w ogóle odpowiada. APM patrzy od środka: mierzy, ile trwa każda transakcja, które zapytanie SQL ją spowalnia i gdzie pojawiają się wyjątki. Uptime mówi „działa/nie działa”, APM odpowiada „dlaczego działa wolno”.

Czy APM spowalnia monitorowaną aplikację?

Minimalnie. Agenty APM są projektowane pod niski narzut i zwykle stosują próbkowanie — szczegółowo śledzą tylko część żądań. Koszt rzędu pojedynczych procent jest zwykle pomijalny wobec wartości diagnostycznej, choć w środowiskach o ekstremalnym ruchu próbkowanie warto dostroić.