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. Realtime Database integracja z Cloud 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. Ten wskaźnik pozwala monitorować, jaka część dostępnej przepustowości bazy danych jest wykorzystywana do przetwarzania żądań na przestrzeni czasu. 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. W przypadku operacji trwających dłużej niż minutę zgłaszane obciążenie może przekraczać 100%. 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 uzyskiwać przydatne statystyki i przeglądy. 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ązywać 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 Realtime Database limitów miejsca na dane. 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 czasu rzeczywistego przeprowadzonych w odpowiedzi na żądania zapisu lub odczytu. Te dane możesz 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.