Monitorowanie wydajności bazy danych

Istnieje kilka różnych sposobów monitorowania wydajności Firebase Realtime Database i wykrywania potencjalnych problemów w aplikacji. Analiza przepustowości dla ruchu przychodzącego i przepustowości dla ruchu wychodzącego aplikacji oraz jej obciążenia może również dać Ci wyobrażenie o tym, czego możesz się spodziewać na rachunku. Dodatkowo, jeśli coś wydaje się nie tak, uzyskanie jasnego obrazu operacji bazy danych może być pomocnym narzędziem do rozwiązywania problemów.

Na tej stronie omawiamy monitorowanie wydajności Realtime Database. Informacje o monitorowaniu wykorzystania znajdziesz w artykule na temat monitorowania wykorzystania bazy danych.

Korzystanie z narzędzi do monitorowania Realtime Database

Dane o skuteczności Realtime Database możesz zbierać za pomocą kilku różnych narzędzi, w zależności od potrzebnego poziomu szczegółowości.

Korzystanie z narzędzia do profilowania Realtime Database

Narzędzie do profilowania Realtime Database zapewnia przegląd operacji odczytu i zapisu w bazie danych w czasie rzeczywistym. Raport zawiera informacje o szybkości i rozmiarze ładunku każdej operacji, a także o niezindeksowanych zapytaniach. Nie zawiera on jednak informacji historycznych ani statystyk dotyczących narzutu połączenia i nie powinien być używany do szacowania kosztów rozliczeniowych.

Więcej informacji o korzystaniu z narzędzia do profilowania znajdziesz w artykule Profilowanie bazy danych.

Korzystanie z konsoli Firebase

Karta Użycie w konsoli Firebase zawiera informacje o jednoczesnych połączeniach z bazą danych, ilości przechowywanych danych, przepustowości dla ruchu wychodzącego (w tym narzut protokołu i szyfrowania) oraz obciążeniu bazy danych w odstępach 1-minutowych. Karta Użycie zawiera dokładniejsze podsumowanie ogólnej wydajności bazy danych, ale może nie umożliwiać wystarczająco szczegółowej analizy, aby rozwiązać potencjalne problemy z wydajnością.

Użyj konta Cloud Monitoring

Dzięki Cloud Monitoring od Google Cloud możesz używać Eksploratora danych, aby wyświetlać poszczególne wskaźniki skuteczności, lub tworzyć różne panele z wykresami, które pokazują różne kombinacje wskaźników skuteczności w czasie. Integracja Realtime Database z Cloud Monitoring zapewnia największą szczegółowość.

Czynności związane z konfigurowaniem Cloud Monitoring opisano w artykule Monitorowanie wykorzystania bazy danych.

W sekcjach poniżej znajdziesz wskazówki dotyczące używania konkretnych danych Cloud Monitoring do wykrywania problemów z wydajnością.

Monitorowanie skuteczności w usłudze Cloud Monitoring

Jeśli masz problemy z wydajnością, w tym z czasem działania lub opóźnieniem, możesz użyć Cloud Monitoring do monitorowania tych danych. Pamiętaj, że wszystkie nazwy typów danych są poprzedzone prefiksem firebasedatabase.googleapis.com/.

Nazwa danych Opis
Obciążenie bazy danych

io/database_load. Użyj tego wskaźnika, aby monitorować, jaka część dostępnej przepustowości bazy danych jest używana do przetwarzania żądań w czasie. Gdy obciążenie bazy danych zbliża się do całkowitej dostępnej przepustowości, mogą wystąpić problemy z wydajnością. Możesz też sprawdzić, które typy operacji generują największe obciążenie, i odpowiednio rozwiązać problemy. W przypadku operacji, które trwają dłużej niż minutę, raportowane obciążenie może przekraczać 100%. Dzieje się tak, gdy łączna przepustowość wykorzystana w ciągu kilku minut jest skondensowana w minutowym interwale raportowania po zakończeniu operacji.

Sieć wyłączona z powodu przekroczenia limitów

network/disabled_for_overages. Ten wskaźnik odzwierciedla wszelkie przerwy w działaniu, które mogły wystąpić, jeśli usługa Realtime Database przekroczyła limity przepustowości lub sieci.

Miejsce na dane wyłączone z powodu przekroczenia limitu

storage/disabled_for_overages. Ten wskaźnik odzwierciedla wszelkie przerwy w działaniu, które mogły wystąpić, jeśli Realtime Database przekroczyło limity miejsca na dane.

Łącz dane na wykresach w panelu, aby uzyskać przydatne statystyki i podsumowania. Wypróbuj na przykład te kombinacje:

  • Operacje: użyj wskaźnika io/database_load, aby sprawdzić, jaka część całkowitego obciążenia bazy danych jest wykorzystywana przez poszczególne typy operacji. Aby rozwiązać problemy z różnymi typami operacji, pogrupuj io/database_load według typu.
  • Miejsce na dane: użyj storage/limit i storage/total_bytes, aby monitorować wykorzystanie miejsca na dane w odniesieniu do limitów miejsca na dane Realtime Database. Możesz też dodać storage/disabled_for_overages, aby sprawdzić, czy aplikacja miała przestoje z powodu przekroczenia limitów miejsca na dane.
  • Narzut SSL: użyj network/https_requests_count, aby monitorować, ile żądań połączenia SSL otrzymała baza danych, i podzielić żądania, które ponownie użyły istniejącego biletu sesji SSL, za pomocą filtra reused_ssl_session. Możesz porównać tę wartość z network/sent_bytes_count i network/sent_payload_and_protocol_bytes_count, aby sprawdzić, czy aplikacja efektywnie korzysta z biletów sesji SSL.

Możesz też skonfigurować alerty w Cloud Monitoring i otrzymywać powiadomienia na podstawie danych Realtime Database. Możesz na przykład wybrać, że chcesz otrzymywać powiadomienia, gdy io/database_load zbliża się do określonego progu.

Zobacz pełną listę danych Realtime Database dostępnych w Cloud Monitoring.

Typy obciążenia bazy danych

Wskaźnik io/database_load zawiera też etykietę z informacją o tym, który typ operacji spowodował obciążenie. Oto możliwe typy mierzonych operacji:

  • admin: operacje administracyjne, takie jak ustawianie reguł i odczytywanie metadanych projektu.
  • auth: weryfikacja uwierzytelniania z kont usługi lub uwierzytelniania Firebase dla jednego klienta.
  • client_management: obsługa dodawania i usuwania równoczesnych połączeń, w tym wykonywanie operacji rozłączania podczas usuwania.
  • get_shallow: pobieranie danych z żądania REST GET za pomocą shallow=true.
  • get: obsługa operacji REST GET.
  • listen: pobieranie danych początkowych dla operacji on i once z połączonych klientów.
  • on_disconnect: rejestrowanie operacji rozłączania przez klientów.
  • put: obsługa operacji set z klientów lub operacji PUT REST.
  • transaction: wykonywanie transakcji z warunkowych żądań REST lub operacji transaction z klienta.
  • update: obsługa operacji update lub żądań REST PATCH.

Monitorowanie reguł zabezpieczeń w Cloud Monitoring

Możesz też analizować ocenę reguł zabezpieczeń. Zwróć uwagę, że wszystkie nazwy typów wskaźników są poprzedzone prefiksem firebasedatabase.googleapis.com/.

Nazwa danych Opis
Oceny reguł rules/evaluation_count. Liczba ocen reguł bazy danych czasu rzeczywistego przeprowadzonych w odpowiedzi na żądania zapisu lub odczytu. Możesz podzielić te dane według wyniku żądania (ALLOW, DENY lub ERROR).

Dostosuj wykres Cloud Monitoring do oceny reguł, na przykład filtrując według określonych wyników oceny: ALLOW, DENY lub ERROR. Konfigurowanie i dostosowywanie wykresów opisano w artykule Monitorowanie wykorzystania bazy danych.

Zobacz pełną listę danych Realtime Database dostępnych w Cloud Monitoring.