Monitorowanie wydajności bazy danych

Istnieje kilka sposobów monitorowania wydajności Firebase Realtime Database i wykrywania potencjalnych problemów w aplikacji. Sprawdzanie przychodzącej i wychodzącej przepustowości oraz obciążenia aplikacji może też dać Ci wyobrażenie o tym, czego możesz się spodziewać na rachunku. Jeśli coś Cię niepokoi, pomocne może być uzyskanie jasnego obrazu operacji w bazie danych.

Na tej stronie omawiamy Realtime Databasemonitorowanie skuteczności. 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.

Korzystanie z narzędzia Realtime Database profiler

Realtime DatabaseNarzędzie profilujące zapewnia przegląd w czasie rzeczywistym operacji odczytu i zapisu w bazie danych. Raport zawiera informacje o szybkości i rozmiarze danych każdego działania, a także o niezindeksowanych zapytaniach. Nie zawiera jednak informacji historycznych ani statystyk dotyczących narzutu połączenia i nie należy jej używać 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życieFirebasekonsoli zawiera informacje o jednoczesnych połączeniach z bazą danych, ilości przechowywanych danych, przepustowości wychodzącej (w tym o narzucie protokołu i szyfrowania) oraz obciążeniu bazy danych w interwałach 1-minutowych. Karta Użycie daje dokładniejszy ogólny wgląd w wydajność bazy danych, ale może nie umożliwiać wystarczającego zagłębienia się w szczegóły, aby rozwiązać potencjalne problemy z wydajnością.

Użyj konta Cloud Monitoring

W sekcji Cloud Monitoring na stronie Google Cloud możesz użyć Eksploratora danych, aby wyświetlić poszczególne dane o skuteczności, lub utworzyć różne panele z wykresami, które pokazują różne kombinacje danych o skuteczności w czasie. Integracja Realtime DatabaseCloud Monitoring zapewnia największą szczegółowość.

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

W sekcjach poniżej znajdziesz wskazówki dotyczące korzystania z określonych Cloud Monitoringdanych do wykrywania problemów z wydajnością.

Monitorowanie skuteczności w 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 symbolem firebasedatabase.googleapis.com/.

Nazwa wskaźnika Opis
Obciążenie bazy danych

io/database_load. Używaj tego wskaźnika, aby monitorować, ile dostępnej przepustowości bazy danych jest wykorzystywane 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 wykorzystują największe obciążenie, i odpowiednio rozwiązać problemy. Zgłoszone obciążenie może przekraczać 100% w przypadku operacji trwających dłużej niż minutę. Dzieje się tak, gdy całkowita przepustowość wykorzystana w ciągu kilku minut jest skracana do minutowego przedziału 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ł limity przepustowości lub sieci.

Miejsce na dane wyłączone z powodu przekroczenia limitu

storage/disabled_for_overages. Ta wartość odzwierciedla wszelkie przerwy w działaniu, które mogły wystąpić, jeśli Realtime Database przekroczył(a) 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 danych 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 je io/database_loadwedług typu.
  • Miejsce na dane: użyj ikon storage/limitstorage/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 w wyniku przekroczenia limitów miejsca na dane wystąpiły przestoje w działaniu aplikacji.
  • Obciążenie SSL: użyj network/https_requests_count, aby monitorować liczbę żądań połączeń SSL otrzymanych przez bazę danych, i rozdziel żądania, które ponownie wykorzystały istniejący bilet sesji SSL, za pomocą filtra reused_ssl_session. Możesz porównać te wartości z wartościami network/sent_bytes_countnetwork/sent_payload_and_protocol_bytes_count, aby sprawdzić, czy Twoja aplikacja efektywnie korzysta z biletów sesji SSL.

Możesz też skonfigurować alertyCloud Monitoring i otrzymywać powiadomienia na podstawie danych Realtime Database. Możesz na przykład otrzymywać powiadomienia, gdy io/database_loadzbliża się do określonego progu.

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

Typy obciążeń bazy danych

Wskaźnik io/database_load zawiera też etykietę typu operacji, która spowodowała obciążenie. Mierzone są te typy operacji:

  • admin: operacje administracyjne, takie jak ustawianie reguł i odczytywanie metadanych projektu.
  • auth: Weryfikowanie uwierzytelniania z kont usług lub uwierzytelniania Firebase dla jednego klienta.
  • client_management: Obsługa dodawania i usuwania połączeń współbieżnych, 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 ononce z połączonych klientów.
  • on_disconnect: rejestrowanie operacji odłączania od klientów.
  • put: obsługa operacji set z klientów lub operacji REST PUT.
  • transaction: wykonywanie transakcji z warunkowych żądań REST lub operacji transaction z klienta.
  • update: obsługuje operacje update lub żądania REST PATCH.

Monitorowanie reguł zabezpieczeń w Cloud Monitoring

Możesz też analizować ocenę reguł zabezpieczeń. Pamiętaj, że nazwy wszystkich typów danych są poprzedzone symbolem firebasedatabase.googleapis.com/.

Nazwa wskaźnika Opis
Oceny reguł rules/evaluation_count Liczba ocen reguł bazy danych w czasie rzeczywistym przeprowadzonych w odpowiedzi na żądania zapisu lub odczytu. Te dane można podzielić według wyniku żądania (ALLOW, DENY lub ERROR).

W razie potrzeby dostosuj wykres Cloud Monitoring do ocen reguł, np. filtrując go według konkretnych 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 ramach Cloud Monitoring.