Monitoring aplikacji to temat odkładany "na potem" aż do pierwszego incydentu produkcyjnego, który trwał za długo. Dobry monitoring to inwestycja, która zwraca się w postaci szybszego reagowania i mniejszych strat.
Dostępność (uptime)
Najprostszy monitoring to sprawdzanie czy aplikacja odpowiada na żądania HTTP. UptimeRobot, Freshping i podobne narzędzia robią to co minutę i wysyłają powiadomienie przez e-mail, SMS lub Slack gdy wykryją problem. Darmowy plan UptimeRobot wystarcza dla większości projektów.
Czas odpowiedzi
Aplikacja może być dostępna, ale wolna. Monitoring czasu odpowiedzi pozwala wykryć degradację wydajności zanim stanie się problemem dla użytkowników. Wartości powyżej 2-3 sekund dla stron produktowych w sklepie to sygnał do działania.
Logi błędów
Logi aplikacji zawierają informacje o błędach, wyjątkach i ostrzeżeniach. Ręczne przeglądanie logów jest nieefektywne. Narzędzia jak Sentry dla wyjątków PHP i JavaScript, Graylog lub stos ELK zbierają logi centralnie i umożliwiają filtrowanie oraz alerty po wzrostach liczby błędów.
Zasoby serwera
CPU, RAM, miejsce na dysku, połączenia z bazą danych - wyczerpanie tych zasobów zwykle poprzedza awarię aplikacji. Netdata, Prometheus z Grafaną lub komercyjne narzędzia jak Datadog pozwalają śledzić te metryki w czasie rzeczywistym.
Baza danych
Wolne zapytania SQL to częsta przyczyna degradacji wydajności aplikacji. MySQL i MariaDB mają wbudowany slow query log. Analiza wolnych zapytań pozwala namierzyć miejsca wymagające optymalizacji indeksów lub struktury zapytań.
Sensowne progi alertów
Alert przychodzący za często jest ignorowany. Progi powinny być ustawione na wartości naprawdę wymagające reakcji, nie na każde chwilowe wahanie. Stopniowe progi, czyli ostrzeżenie przy 80% zużycia CPU i krytyczny przy 95%, dają czas na reakcję zanim problem stanie się awarią.