Monitorowanie wydajności bazy danych

Skuteczność aplikacji Firebase Realtime Database możesz sprawdzać na kilka sposobów i w ten sposób wykrywać potencjalne problemy. Sprawdzanie przepustowości i obciążenia przychodzącego i wychodzącego aplikacji może też pomóc Ci oszacować wysokość rachunku. Jeśli coś wydaje Ci się nie tak, możesz uzyskać jasny obraz działania bazy danych, co może być pomocne w rozwiązywaniu problemów.

Ta strona dotyczy monitorowania skuteczności Realtime Database. Informacje o monitorowaniu wykorzystania znajdziesz w artykule Monitorowanie 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 potrzebnej szczegółowości.

Używanie narzędzia do profilowania Realtime Database

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

Więcej informacji o używaniu narzędzia do profilowania znajdziesz w artykule Profilowanie bazy danych.

Korzystanie z konsoli Firebase

Karta KorzystanieFirebase konsoli zawiera informacje o jednoczesnych połączeniach z bazą danych, ilości przechowywanych danych, przepustowości wychodzącej (w tym narzutu protokołu i szyfrowania) oraz obciążeniu bazy danych w interwałach 1-minutowych. Karta Użycie zapewnia dokładniejszy wgląd w ogólną wydajność bazy danych, ale może się okazać, że nie będzie można przejść do wystarczająco szczegółowego poziomu, aby rozwiązać potencjalne problemy z wydajnością.

Użyj konta Cloud Monitoring

Dzięki Cloud MonitoringGoogle Cloud możesz używać Eksploratora danych, aby wyświetlać poszczególne dane o skuteczności, lub tworzyć różne panele z wykresami, które pokazują różne kombinacje danych o skuteczności na przestrzeni czasu. Integracja Realtime Database z Cloud Monitoring zapewnia najwyższy poziom szczegółowości.

Instrukcje konfigurowania Cloud Monitoring znajdziesz w artykule Monitorowanie wykorzystania bazy danych.

W następnych sekcjach znajdziesz wskazówki dotyczące korzystania z określonych Cloud Monitoring danych, które pomogą Ci wykryć problemy ze skutecznością.

Sprawdzanie skuteczności w Cloud Monitoring

Jeśli masz problemy z wydajnością, w tym z dostępnością lub opóźnieniem, możesz użyć Cloud Monitoring do monitorowania tych danych. Pamiętaj, że wszystkie nazwy typów danych mają przedrostek firebasedatabase.googleapis.com/.

Nazwa wskaźnika Opis
Obciążenie bazy danych

io/database_load. Korzystaj z tego wskaźnika, aby monitorować, jaka część dostępnej przepustowości bazy danych jest używana do przetwarzania żądań na przestrzeni czasu. Możesz mieć problemy z wydajnością, gdy obciążenie bazy danych zbliża się do całkowitej dostępnej przepustowości. Możesz też sprawdzić, które typy operacji wykorzystują najwięcej zasobów, i odpowiednio rozwiązać problemy. W przypadku operacji trwających dłużej niż minutę zgłaszany obciążenie może przekroczyć 100%. Dzieje się tak, gdy łączna przepustowość wykorzystana w ciągu kilku minut jest zagęszczana w 1-minutowym interwale raportowania po zakończeniu operacji.

Sieć wyłączona z powodu przekroczenia limitu

network/disabled_for_overages. Te dane odzwierciedlają wszelkie przerwy w działaniu, które mogły wystąpić, jeśli Realtime Database przekroczył limit przepustowości lub limity sieci.

Wyłączenie miejsca na dane w przypadku przekroczenia limitu

storage/disabled_for_overages. Ten rodzaj danych odzwierciedla wszelkie przerwy w działaniu, które mogły wystąpić, jeśli Realtime Database przekroczył limit miejsca na dane.

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

  • Operacje: korzystaj z danych io/database_load, aby sprawdzić, jaka część całkowitego obciążenia bazy danych jest wykorzystywana przez dany typ operacji. Aby rozwiązać problemy z różnymi typami operacji, należy utworzyć grupy io/database_load według typu.
  • Miejsce na dane: użyj funkcji storage/limit i storage/total_bytes, aby monitorować wykorzystanie miejsca na dane w odniesieniu do limitów Realtime Database. Możesz też dodać storage/disabled_for_overages, aby sprawdzić, czy Twoja aplikacja była niedostępna z powodu przekroczenia limitu miejsca na dane.
  • Nakład SSL: użyj network/https_requests_count, aby monitorować liczbę otrzymanych przez bazę danych próśb o połączenie SSL, a za pomocą filtra reused_ssl_session wyodrębnij te prośby, które korzystały z istniejącego biletu sesji SSL. Możesz to mierzyć za pomocą wartości network/sent_bytes_countnetwork/sent_payload_and_protocol_bytes_count, aby sprawdzać, czy aplikacja efektywnie korzysta z biletów sesji SSL.

Możesz też skonfigurować alerty za pomocą Cloud Monitoring i otrzymywać powiadomienia na podstawie danych Realtime Database. Możesz na przykład wybrać, aby otrzymywać powiadomienie, gdy io/database_loadzbliża się do określonego progu.

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

Typy obciążenia bazy danych

Wskaźnik io/database_load zawiera też etykietę wskazującą, jaki typ operacji spowodował obciążenie. Możliwe typy zmierzonych operacji:

  • admin: operacje administracyjne, takie jak ustawianie reguł i odczytywanie metadanych projektu.
  • auth: weryfikowanie uwierzytelniania z kont usługi lub Uwierzytelniania Firebase w przypadku pojedynczego klienta.
  • client_management: obsługa dodawania i usuwania równoczesnych połączeń, co obejmuje wykonywanie operacji odłączania podczas usuwania.
  • get_shallow: pobieranie danych z zapytania REST GET z użyciem parametru shallow=true.
  • get: obsługa operacji REST GET.
  • listen: pobieranie danych początkowych operacji ononce z połączonych klientów.
  • on_disconnect: rejestrowanie operacji odłączania klientów.
  • put: obsługa operacji set ze strony klientów lub operacji REST PUT.
  • 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ń. Pamiętaj, że wszystkie nazwy typów danych mają przedrostek firebasedatabase.googleapis.com/.

Nazwa wskaźnika Opis
Oceny reguł rules/evaluation_count. Liczba oceny reguł bazy danych w czasie rzeczywistym wykonanych w odpowiedzi na żądania zapisu lub odczytu. Dane te możesz podzielić według wyniku żądania (ZEZWOLENIE, ODMOWIENIE lub BŁĄD).

W razie potrzeby dostosuj wykres Cloud Monitoring do oceny reguł, na przykład filtrując według konkretnych wyników oceny: ALLOW (ZEZWOLENIE), DENY (ODRZUCANIE) lub ERROR (BŁĄD). Konfigurowanie i dostosowywanie wykresów omawiamy w artykule Monitorowanie użycia bazy danych.

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