Monitorowanie wydajności bazy danych

Istnieje kilka sposobów monitorowania skuteczności Firebase Realtime Database's i wykrywania potencjalnych problemów w aplikacji. Sprawdzanie przychodzącej i przepustowości dla ruchu wychodzącego oraz obciążenia aplikacji może też dać Ci wyobrażenie o tym, czego możesz się spodziewać na rachunku. Jeśli coś Ci się nie podoba, pomocne może być też dokładne sprawdzenie operacji w bazie danych.

Na tej stronie omawiamy monitorowanie 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 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 w czasie rzeczywistym przegląd operacji odczytu i zapisu w bazie danych. Raport zawiera informacje o szybkości i rozmiarze ładunku każdej operacji, a także o zapytaniach bez indeksu. Nie zawiera jednak informacji historycznych ani statystyk dotyczących narzutu połączenia i nie należy go używać do szacowania kosztów rozliczeń.

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

Korzystanie z konsoli Firebase

Karta Wykorzystanie w Firebase konsoli Firebase zawiera informacje o jednoczesnych połączeniach z bazą danych, ilości przechowywanych danych, przepustowości dla ruchu wychodzącego (w tym narzutu protokołu i szyfrowania) oraz obciążeniu bazy danych w odstępach 1-minutowych. Karta Wykorzystanie zapewnia dokładniejszy przegląd ogólnej skuteczności bazy danych, ale może nie umożliwiać wystarczającego szczegółowego sprawdzenia, aby rozwiązać potencjalne problemy z wydajnością.

Użyj Cloud Monitoring

Dzięki Cloud Monitoring z Google Cloud możesz używać narzędzia Metrics Explorer do wyświetlania poszczególnych danych o skuteczności lub tworzyć różne panele z wykresami, które pokazują różne kombinacje danych o skuteczności w czasie. Integracja z Realtime Database z Cloud Monitoring zapewnia największy poziom szczegółowości.

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

Wskazówki dotyczące używania konkretnych Cloud Monitoring danych do wykrywania problemów z wydajnością znajdziesz w tych sekcjach.

Monitorowanie skuteczności w Cloud Monitoring

Jeśli masz problemy ze skutecznoś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 mają prefiks firebasedatabase.googleapis.com/.

Nazwa danych Opis
Obciążenie bazy danych

io/database_load. Użyj tych danych, aby monitorować, ile Twojej dostępnej przepustowości bazy danych jest wykorzystywane do przetwarzania żądań w czasie. Problemy ze skutecznością mogą się pojawić, gdy obciążenie bazy danych zbliża się do całkowitej dostępnej przepustowości. Możesz też sprawdzić, które typy operacji powodują największe obciążenie, i odpowiednio rozwiązać problemy. Zgłaszane obciążenie może przekraczać 100% w przypadku operacji które trwają dłużej niż minutę. Dzieje się tak, gdy całkowita przepustowość wykorzystana w ciągu kilku minut jest skondensowana w minutowym przedziale raportowania po zakończeniu operacji.

Sieć wyłączona z powodu przekroczenia limitu

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

Miejsce na dane wyłączone z powodu przekroczenia limitu

storage/disabled_for_overages. Te dane odzwierciedlają wszelkie awarie, które mogły wystąpić, jeśli Realtime Database przekroczyły limity miejsca na dane.

Łącz wskaźniki na wykresach w panelu, aby uzyskać pomocne statystyki i przeglądy. Na przykład wypróbuj te kombinacje:

  • Operacje: użyj danych io/database_load, aby sprawdzić, ile całkowitego obciążenia bazy danych jest wykorzystywane przez każdy typ operacji. Aby rozwiązać problemy z różnymi typami operacji, pogrupuj dane io/database_load według typu.
  • Miejsce na dane: użyj danych storage/limit i storage/total_bytes, aby monitorować wykorzystanie miejsca na dane w odniesieniu do limitów miejsca na dane w Realtime Database. Możesz też dodać dane storage/disabled_for_overages, aby sprawdzić, czy aplikacja uległa awarii z powodu przekroczenia limitów miejsca na dane.
  • Narzut SSL: użyj danych network/https_requests_count, aby monitorować, ile żądań połączenia SSL otrzymała baza danych, i podzielić żądania, które ponownie wykorzystały istniejący bilet sesji SSL, za pomocą filtra reused_ssl_session. Możesz porównać te dane z danymi 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 przez Cloud Monitoring i otrzymywać powiadomienia na podstawie Realtime Database danych. Możesz na przykład otrzymywać powiadomienia, jeśli dane io/database_load zbliżają się do określonego progu.

Pełną listę danych Realtime Database dostępnych w Cloud Monitoring znajdziesz tutaj.

Typy obciążenia bazy danych

Dane io/database_load zawierają też etykietę wskazującą typ operacji, która spowodowała obciążenie. Możliwe typy mierzonych operacji:

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

Monitorowanie reguł bezpieczeństwa w Cloud Monitoring

Możesz też analizować ocenę reguł bezpieczeństwa. Pamiętaj, że wszystkie nazwy typów danych mają prefiks 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. 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 według konkretnych wyników oceny (ALLOW, DENY lub ERROR). Konfigurowanie i dostosowywanie wykresów opisujemy w artykule Monitorowanie wykorzystania bazy danych.

Pełną listę danych Realtime Database dostępnych w Cloud Monitoring znajdziesz tutaj.