Monitorowanie

Optymalizacja wydajności zaczyna się od identyfikacji kluczowych wskaźników, zwykle związanych z opóźnieniami i przepustowością. Dodanie monitorowania w celu przechwytywania i śledzenia tych danych ujawnia słabe punkty aplikacji. Dzięki danym można podjąć optymalizację w celu poprawy wyników.

Poza tym wiele narzędzi do monitorowania pozwala skonfigurować alerty, dzięki którym otrzymasz powiadomienie, gdy zostanie osiągnięty określony próg. Możesz na przykład skonfigurować alert, który powiadomi Cię, gdy odsetek nieudanych żądań wzrośnie o ponad x% normalnego poziomu. Narzędzia do monitorowania mogą pomóc w identyfikacji normalnej wydajności oraz wykrywaniu nietypowych skoków czasu oczekiwania, liczby błędów i innych kluczowych wskaźników. Możliwość monitorowania tych wskaźników jest szczególnie ważna w okresach o krytycznym znaczeniu dla działania firmy lub po przekazaniu nowego kodu do produkcji.

Określ wskaźniki czasu oczekiwania

Zadbaj o to, aby interfejs użytkownika był jak najbardziej responsywny, pamiętając, że użytkownicy oczekują jeszcze wyższych standardów od aplikacji mobilnych. Czas oczekiwania należy też mierzyć i śledzić w przypadku usług backendu, zwłaszcza że jeśli nie zaznaczysz tego pola, może ono prowadzić do problemów z przepustowością.

Sugerowane dane, które warto śledzić, to:

  • Czas trwania żądania
  • Czas trwania żądania na poziomie szczegółowości podsystemu (np. wywołania interfejsu API)
  • Czas trwania zadania

Określ wskaźniki przepustowości

Przepustowość jest miarą łącznej liczby żądań obsłużonych w danym okresie. Na przepustowość może wpływać czas oczekiwania podsystemów, więc w celu zwiększenia przepustowości może być konieczna optymalizacja pod kątem czasu oczekiwania.

Oto kilka sugerowanych danych, które warto śledzić:

  • Zapytania na sekundę
  • Rozmiar przesyłanych danych w ciągu sekundy
  • Liczba operacji wejścia-wyjścia na sekundę
  • Wykorzystanie zasobów, na przykład wykorzystanie procesora lub pamięci
  • Wielkość zaległości przetwarzania, na przykład pub/Sub lub liczba wątków

Nie tylko złośliwość

Często popełnianym błędem podczas pomiaru skuteczności jest uwzględnianie tylko wartości średniej (średniej). Chociaż jest to przydatne, nie zawiera informacji o rozkładzie czasu oczekiwania. Lepszym wskaźnikiem są centyle skuteczności, na przykład 50/75/90/99 centyl.

Ogólnie optymalizację można przeprowadzić w 2 etapach. Po pierwsze, zoptymalizuj czas pod kątem 90 percentyla. Rozważmy następnie 99 centyl, czyli tzw. „opóźnienie końcowe”, czyli niewielką część żądań, których realizacja zajmuje znacznie więcej czasu.

Monitorowanie po stronie serwera w celu uzyskania szczegółowych wyników

Do śledzenia wskaźników zazwyczaj preferowane jest profilowanie po stronie serwera. Po stronie serwera jest zwykle dużo łatwiej instrumentować, umożliwia dostęp do bardziej szczegółowych danych i jest mniej podatne na zakłócenia spowodowane problemami z połączeniem.

Monitorowanie przeglądarki w celu uzyskania pełnej widoczności

Profilowanie przeglądarki może dostarczyć dodatkowych informacji na temat wrażeń użytkownika. Może wskazać strony z wolnym żądaniem, które można później powiązać z monitorowaniem po stronie serwera, aby przeprowadzić dalszą analizę.

Google Analytics umożliwia gotowe monitorowanie czasu wczytywania stron w raporcie Szybkość wczytywania strony. Znajdziesz w nim kilka przydatnych widoków, które pomogą Ci zrozumieć wrażenia użytkowników Twojej witryny, w szczególności:

  • Czas wczytywania strony
  • Przekieruj czas wczytywania
  • Czasy reakcji serwera

Monitorowanie w chmurze

Istnieje wiele narzędzi, których możesz użyć do rejestrowania i monitorowania wskaźników wydajności aplikacji. Możesz na przykład użyć Google Cloud Logging, by rejestrować w projekcie Google Cloud dane o wydajności, a potem skonfigurować panele w Google Cloud Monitoring do monitorowania i segmentowania logowanych danych.

W przewodniku po logowaniu znajdziesz przykład logowania w Google Cloud Logging z niestandardowego modułu przechwytywania w bibliotece klienta w Pythonie. Dane dostępne w Google Cloud pozwalają tworzyć wskaźniki na podstawie danych zarejestrowanych w celu uzyskania wglądu w aplikację za pomocą Google Cloud Monitoring. Postępuj zgodnie z przewodnikiem po wskaźnikach opartych na logach zdefiniowanych przez użytkownika, aby tworzyć wskaźniki za pomocą logów wysyłanych do Google Cloud Logging.

Możesz też użyć bibliotek klienta usługi Monitoring, aby zdefiniować wskaźniki w kodzie i wysłać je bezpośrednio do usługi Monitoring, niezależnie od logów.

Przykład wskaźników opartych na logach

Załóżmy, że chcesz monitorować wartość is_fault, aby lepiej poznać odsetek błędów w aplikacji. Możesz wyodrębnić wartość is_fault z logów do nowego danych licznikaErrorCount.

Konfiguracja wskaźnika

Filtry i etykiety we wskaźnikach

W Cloud Logging etykiety umożliwiają grupowanie wskaźników w kategorie na podstawie innych danych w logach. Możesz skonfigurować etykietę pola method wysyłanego do Cloud Logging, aby sprawdzić, jak liczba błędów przekłada się na metodę Google Ads API.

Po skonfigurowaniu wskaźnika ErrorCount i etykiety Method możesz utworzyć nowy wykres w panelu monitorowania, aby monitorować ErrorCount. Pogrupowany według atrybutu Method.

Panel ErrorCount

Alerty

W Cloud Monitoring i innych narzędziach można konfigurować zasady tworzenia alertów, które określają, kiedy i w jaki sposób alerty mają być aktywowane przez Twoje wskaźniki. Instrukcje konfigurowania alertów Cloud Monitoring znajdziesz w przewodniku po alertach.