Monitorowanie

Optymalizacja skuteczności zaczyna się od określenia kluczowych danych, zwykle związanych z czasem oczekiwania i przepustowością. Dodanie monitorowania w celu rejestrowania i śledzenia tych danych ujawnia słabe punkty aplikacji. Dzięki danym można przeprowadzić optymalizację, aby poprawić wskaźniki skuteczności.

Dodatkowo wiele narzędzi do monitorowania umożliwia konfigurowanie alertów dotyczących danych, dzięki czemu otrzymujesz powiadomienia, gdy zostanie osiągnięty określony próg. Możesz na przykład skonfigurować alert, który będzie Cię powiadamiał, gdy odsetek nieudanych żądań wzrośnie o więcej niż x% w stosunku do normalnego poziomu. Narzędzia do monitorowania mogą pomóc Ci określić, jak wygląda normalna skuteczność, i wykryć nietypowe skoki czasu oczekiwania, liczby błędów i innych kluczowych danych. Możliwość monitorowania tych danych jest szczególnie ważna w krytycznych okresach dla firmy lub po wprowadzeniu nowego kodu do środowiska produkcyjnego.

Określanie danych dotyczących czasu oczekiwania

Zadbaj o to, aby interfejs użytkownika był jak najbardziej responsywny. Pamiętaj, że użytkownicy oczekują jeszcze wyższych standardów od aplikacji mobilnych. Należy też mierzyć i śledzić czas oczekiwania w przypadku usług backendowych, zwłaszcza że może on prowadzić do problemów z przepustowością, jeśli nie będzie kontrolowany.

Sugerowane dane do śledzenia:

  • Czas trwania żądania
  • Czas trwania żądania z dokładnością do podsystemu (np. wywołania interfejsu API)
  • Czas trwania zadania

Określanie danych dotyczących przepustowości

Przepustowość to miara łącznej liczby żądań obsłużonych w danym okresie. Na przepustowość może wpływać czas oczekiwania podsystemów, dlatego aby ją poprawić, może być konieczna optymalizacja pod kątem czasu oczekiwania.

Oto kilka sugerowanych danych do śledzenia:

  • Zapytania na sekundę
  • Rozmiar danych przesyłanych na sekundę
  • Liczba operacji wejścia/wyjścia na sekundę
  • Wykorzystanie zasobów, np. procesora lub wykorzystanie pamięci
  • Rozmiar zaległości w przetwarzaniu, np. pub/sub lub liczba wątków

Nie tylko średnia

Częstym błędem przy pomiarze skuteczności jest uwzględnianie tylko średniej (średniej) wartości. Chociaż jest to przydatne, nie daje wglądu w rozkład czasu oczekiwania. Lepszym wskaźnikiem do śledzenia są percentyle skuteczności, np. 50., 75., 90. lub 99. percentyl danego wskaźnika.

Optymalizację można zwykle przeprowadzić w 2 krokach. Najpierw zoptymalizuj czas oczekiwania w 90. percentylu. Następnie weź pod uwagę 99. percentyl, czyli czas oczekiwania na końcu kolejki – niewielką część żądań, których wykonanie trwa znacznie dłużej.

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

Do śledzenia danych zwykle preferowane jest profilowanie po stronie serwera. Strona serwera jest zwykle znacznie łatwiejsza do instrumentacji, umożliwia dostęp do bardziej szczegółowych danych i jest mniej podatna na zakłócenia spowodowane problemami z łącznością.

Monitorowanie w przeglądarce w celu uzyskania pełnego wglądu

Profilowanie w przeglądarce może dostarczyć dodatkowych informacji o wrażeniach użytkowników. Może pokazać, które strony mają wolne żądania, co można następnie powiązać z monitorowaniem po stronie serwera w celu dalszej analizy.

Google Analytics zapewnia gotowe monitorowanie czasu wczytywania strony w raporcie Czas wczytywania strony. Dzięki temu możesz uzyskać kilka przydatnych widoków, które pomogą Ci zrozumieć wrażenia użytkowników w Twojej witrynie, w szczególności:

  • Czas wczytywania strony
  • Czas wczytywania przekierowania
  • Czas reakcji serwera

Monitorowanie w chmurze

Do rejestrowania i monitorowania danych dotyczących skuteczności aplikacji możesz używać wielu narzędzi. Możesz na przykład użyć Cloud Logging, aby rejestrować dane dotyczące skuteczności w projekcie Google Cloud, a następnie skonfigurować panele w Cloud Monitoring, aby monitorować i segmentować zarejestrowane dane.

Więcej informacji o rejestrowaniu w Cloud Logging z niestandardowego interceptora w bibliotece klienta Python znajdziesz w przewodniku po rejestrowaniu. Przykład rejestrowania w Cloud Logging. Gdy te dane będą dostępne w Google Cloud, możesz na ich podstawie tworzyć dane, aby uzyskać wgląd w aplikację za pomocą Cloud Monitoring. Aby tworzyć dane na podstawie logów wysyłanych do Cloud Logging, postępuj zgodnie z instrukcjami w przewodniku po wskaźnikach opartych na logach zdefiniowanych przez użytkownika.

Możesz też użyć bibliotek klienta Monitoring, aby zdefiniować dane w kodzie i wysyłać je bezpośrednio do Monitoring, oddzielnie od logów.

Przykład danych opartych na logach

Załóżmy, że chcesz monitorować wartość is_fault, aby lepiej zrozumieć współczynniki błędów w aplikacji. Możesz wyodrębnić wartość is_fault z logów do nowego wskaźnika licznika, ErrorCount.

Konfiguracja danych

Filtry i etykiety w danych

W Cloud Logging etykiety umożliwiają grupowanie danych w kategorie na podstawie innych danych w logach. Możesz skonfigurować etykietę dla pola method wysyłanego do Cloud Logging, aby sprawdzić, jak liczba błędów jest dzielona według metody interfejsu Google Ads API.

Po skonfigurowaniu danych ErrorCount i etykiety Method możesz utworzyć nowy wykres w panelu Monitoring, aby monitorować ErrorCount pogrupowane według Method.

Panel ErrorCount

Alerty

W Cloud Monitoring i innych narzędziach możesz skonfigurować zasady alertów, które określają, kiedy i jak alerty mają być wywoływane przez Twoje dane. Instrukcje konfigurowania alertów Cloud Monitoring znajdziesz w przewodniku po alertach.