Monitorowanie danych baz danych

Na tej stronie dowiesz się, jak za pomocą danych Cloud Monitoring monitorować bazę danych Cloud Firestore.

Cloud Monitoring dane dotyczące Cloud Firestore

W sekcjach poniżej znajdziesz omówienie danych dostępnych w Cloud Firestore.

Monitorowane zasoby

Monitorowany zasób w Cloud Monitoring reprezentuje jednostkę logiczną lub fizyczną , taką jak maszyna wirtualna, baza danych lub aplikacja. Monitorowane zasoby zawierają unikalny zestaw danych, które można analizować, raportować za pomocą panelu lub wykorzystywać do tworzenia alertów. Każdy zasób ma też zestaw etykiet zasobów, czyli par klucz-wartość, które zawierają dodatkowe informacje o zasobie. Etykiety zasobów są dostępne dla wszystkich danych powiązanych z zasobem.

Za pomocą interfejsu Cloud Monitoring API, Cloud Firestore wydajność jest monitorowana za pomocą tego zasobu:

Zasoby Opis
firestore.googleapis.com/Database Typ monitorowanego zasobu, który zawiera podziały według project, location i database_id.

Dane

Pełną listę danych Cloud Firestore znajdziesz w artykule Cloud Firestore dane. W sekcji poniżej opisujemy niektóre z dostępnych danych.

Dane środowiska wykonawczego usługi

Dane serviceruntime zapewniają ogólny przegląd ruchu w projekcie. Te dane są dostępne w przypadku większości Google Cloud interfejsów API. Typ monitorowanego zasobu consumed_api zawiera te wspólne dane. Te dane są próbkowane co 30 minut, co powoduje ich wygładzenie.

Ważną etykietą zasobu w przypadku danych serviceruntime jest method. Ta etykieta reprezentuje wywoływaną metodę RPC. Metoda pakietu SDK, którą wywołujesz, nie musi mieć takiej samej nazwy jak podstawowa metoda RPC. Wynika to z tego, że pakiet SDK zapewnia abstrakcję interfejsu API wysokiego poziomu. Jeśli jednak chcesz zrozumieć, jak Twoja aplikacja wchodzi w interakcję z Cloud Firestore, musisz poznać dane na podstawie nazwy metody RPC.

Jeśli chcesz się dowiedzieć, jaka jest podstawowa metoda RPC w przypadku danej metody pakietu SDK, zapoznaj się z dokumentacją interfejsu API.

api/request_latencies

Dane api/request_latencies zawierają rozkłady czasu oczekiwania we wszystkich ukończonych żądaniach.

Cloud Firestore rejestruje dane z komponentu Cloud Firestore Service. Dane o czasie oczekiwania obejmują czas od momentu otrzymania żądania przez Cloud Firestore do momentu zakończenia wysyłania odpowiedzi przez Cloud Firestore, w tym interakcje z warstwą pamięci. Z tego powodu w tych danych nie jest uwzględniany czas oczekiwania w obie strony (rtt) między klientem a usługą Cloud Firestore.

Dane operacji na dokumentach

Cloud Firestore podaje liczbę odczytów, zapisów i usunięć. Dane zapisu zawierają podział na operacje „CREATE” i „UPDATE”. Te dane są zgodne z operacjami CRUD.

Za pomocą tych danych możesz sprawdzić, czy Twoja baza danych jest bardziej obciążona odczytami czy zapisami, oraz poznać liczbę nowych dokumentów w porównaniu z liczbą usuniętych dokumentów.

  • document/delete_ops_count: liczba udanych usunięć dokumentów.
  • document/read_ops_count: liczba udanych odczytów dokumentów z zapytań lub wyszukiwań.
  • document/write_ops_count: liczba udanych zapisów dokumentów.

Dane rozliczeniowe

Za pomocą tych danych możesz poznać wykorzystanie rozliczeniowe. Te dane nie obejmują rozliczeń za operacje administratora (indeksowanie, import, eksport i zbiorcze usuwanie).

  • api/billable_read_units: liczba rozliczanych jednostek odczytu. Wykorzystanie można podzielić według nazwy usługi i metody interfejsu API.
  • api/billable_realtime_read_units: liczba rozliczanych jednostek odczytu w czasie rzeczywistym z aktualizacji w czasie rzeczywistym. Dotyczy to tylko Cloud Firestore w trybie natywnym.
  • api/billable_write_units: liczba rozliczanych jednostek zapisu. Wykorzystanie można podzielić według nazwy usługi i metody interfejsu API.
  • document/billable_managed_delete_write_units: liczba rozliczanych jednostek zapisu z usług zarządzanych usuwania, takich jak TTL.

Dane indeksu

Liczbę zapisów indeksu można porównać z danymi document/write_ops_count, aby poznać rozgałęzienie indeksu.

  • index/write_count: liczba zapisów indeksu.

Dane TTL

Dane TTL dotyczące danych Cloud Firestore służą do monitorowania wpływu egzekwowanej zasady TTL.

  • document/ttl_deletion_count: łączna liczba dokumentów usuniętych przez usługi TTL.
  • document/ttl_expiration_to_deletion_delays: czas, który upłynął od wygaśnięcia dokumentu z TTL do jego usunięcia.

Wyświetlanie wstępnie zdefiniowanych paneli i tworzenie paneli niestandardowych

Cloud Firestore obsługuje wstępnie zdefiniowane panele, które korzystają z danych Cloud Monitoring. Możesz też tworzyć panele niestandardowe.

Wyświetlanie danych o wykorzystaniu bazy danych

Aby wyświetlić odczyty, zapisy i usunięcia dokumentów w czasie, otwórz panele wykorzystania w konsoli Google Cloud.

Kontrola dostępu

Panele wykorzystania wymagają uprawnienia Identity and Access Management (IAM) monitoring.timeSeries.list. To uprawnienie jest przyznawane przez role właściciela projektu, edytującego i wyświetlającego. Możesz też przyznać to uprawnienie za pomocą roli Cloud Monitoring lub roli niestandardowej.

Panel wykorzystania bazy danych

Aby wyświetlić dane o wykorzystaniu bazy danych Cloud Firestore:

  1. W konsoli Google Cloud otwórz stronę Bazy danych.

    Otwórz stronę Bazy danych

  2. Na liście baz danych wybierz odpowiednią bazę danych.

  3. W menu nawigacyjnym kliknij Wykorzystanie.

Panel wykorzystania i raporty rozliczeniowe

Panele wykorzystania Cloud Firestore w konsoli zawierają szacunkowe dane o wykorzystaniu. Pomagają zidentyfikować gwałtowne skoki wykorzystania. Nie jest to jednak dokładny widok rozliczonych operacji. Rozliczone wykorzystanie jest prawdopodobnie wyższe. Aby monitorować rozliczenia, zapoznaj się z sekcją Dane rozliczeniowe.

We wszystkich przypadkach rozbieżności raport rozliczeniowy ma pierwszeństwo przed panelem wykorzystania.

Operacje importu i eksportu powodują rozbieżności między panelem wykorzystania a rozliczonym wykorzystaniem. Odczyty i zapisy wykonywane przez te operacje nie są widoczne w panelu wykorzystania.

Wyświetlanie danych o wydajności bazy danych

Strona Monitorowanie w sekcji Cloud Firestore w konsoli Google Cloud zawiera wstępnie zdefiniowane panele monitorowania, takie jak Czasy oczekiwania na żądanie (P50 i P99), Kody odpowiedzi i Statystyki zapytań (P50). Możesz też utworzyć maksymalnie 1 panel niestandardowy. Aby otworzyć stronę Monitorowanie bazy danych:

  1. W konsoli Google Cloud otwórz stronę Cloud Firestore Bazy danych.

    Otwórz stronę Bazy danych

  2. Wybierz bazę danych z listy.

  3. W menu nawigacyjnym kliknij Monitorowanie, aby otworzyć panel.

Tworzenie niestandardowych Cloud Monitoring paneli

W Cloud Monitoring panele niestandardowe umożliwiają uporządkowane wyświetlanie informacji, które są dla Ciebie istotne. Możesz na przykład utworzyć panel, który będzie wyświetlać dane o wydajności i zasady tworzenia alertów dotyczące Twojego projektu w środowisku produkcyjnym.

Więcej informacji o konfigurowaniu panelu niestandardowego znajdziesz w artykułach Zarządzanie panelem niestandardowym i Dodawanie widżetów do panelu.

Przygotowanie zasad tworzenia alertów

W Cloud Monitoring możesz tworzyć alerty, które będą Cię powiadamiać o zmianach warunków danych. Dzięki tym alertom możesz otrzymywać powiadomienia o potencjalnych problemach, zanim wpłyną one na użytkowników.

Więcej informacji o tworzeniu alertów znajdziesz w artykule Tworzenie zasad tworzenia alertów na podstawie progu danych.

Rozważmy ten przykład, w którym tworzymy zasadę tworzenia alertów o czasie oczekiwania. Zasada tworzenia alertów sprawdza czas oczekiwania p99 w 5-minutowym oknie ruchomym. Jeśli czas oczekiwania p99 pozostanie wyższy niż 250 ms przez 5 minut, zostanie wywołany alert.

Konsola

  1. W konsoli Google Cloud otwórz stronę Monitorowanie, a następnie wybierz   Alerty.

    Otwórz stronę Monitorowanie

  2. Kliknij Utwórz zasadę.

  3. W zasobie Wykorzystany interfejs API wybierz dane Czasy oczekiwania na żądanie.

  4. Dodaj filtr usługi firestore.googleapis.com w przypadku baz danych Firestore w trybie natywnym.

  5. Aby skonfigurować aktywator, kliknij Dalej.

  6. Wybierz Typy warunków jako Próg.

    Warunek progu jest ustawiony na wartość progową 250 ms. Alert jest wywoływany, gdy wartość czasu oczekiwania p99 pozostaje taka sama przez cały okres okna ruchomego (5 min).

  7. Ustaw Wartość progu na 250.

  8. Aby skonfigurować powiadomienia, kliknij Dalej.

  9. Ustaw nazwę zasady tworzenia alertów i kliknij Dalej.

  10. Sprawdź konfiguracje alertów i kliknij Utwórz zasadę.

MQL

Tę samą zasadę tworzenia alertów o czasie oczekiwania możesz zaimplementować za pomocą zapytania w języku MQL. Więcej przykładów użycia MQL znajdziesz w artykule Przykładowe zapytania MQL.

fetch consumed_api
| metric 'serviceruntime.googleapis.com/api/request_latencies'
| filter (resource.service == 'firestore.googleapis.com')
| group_by 5m,
    [value_request_latencies_percentile:
      percentile(value.request_latencies, 99)]
| every 5m
| condition val() > 0.25 's'