Informationen zur Leistungsüberwachung in Firestore im Datastore-Modus

Cloud Monitoring erfasst Messwerte, Ereignisse und Metadaten aus Google Cloud Produkten. Mit Cloud Monitoring können Sie auch benutzerdefinierte Dashboards und Nutzungsbenachrichtigungen einrichten.

In diesem Dokument erfahren Sie, wie Sie Messwerte verwenden, das Dashboard für benutzerdefinierte Messwerte kennenlernen und Benachrichtigungen einrichten.

Überwachte Ressourcen

Eine überwachte Ressource in Cloud Monitoring stellt eine logische oder physische Entität dar, z. B. eine virtuelle Maschine, eine Datenbank oder eine Anwendung. Überwachte Ressourcen enthalten eine eindeutige Reihe von Messwerten, die analysiert, über ein Dashboard gemeldet oder zum Erstellen von Benachrichtigungen verwendet werden können. Jede Ressource hat auch eine Reihe von Ressourcenlabels, die Schlüssel/Wert-Paare sind und zusätzliche Informationen zur Ressource enthalten. Ressourcenlabels sind für alle Messwerte verfügbar, die mit der Ressource verknüpft sind.

Mit der Cloud Monitoring API wird die Leistung von Firestore im Datastore-Modus mit den folgenden Ressourcen überwacht:

Ressourcen Beschreibung Unterstützter Datenbankmodus
firestore.googleapis.com/Database (empfohlen) Überwachter Ressourcentyp, der Aufschlüsselungen für project, location* und database_id bietet . Das database_id Label ist (default) für Datenbanken, die ohne bestimmten Namen erstellt wurden. Gilt für beide Modi.
datastore_request Überwachter Ressourcentyp für Datastore-Projekte, der keine Aufschlüsselung für Datenbanken bietet.

Messwerte

Firestore ist in zwei verschiedenen Modi verfügbar: Firestore Native und Firestore im Datastore-Modus. Einen Funktions vergleich zwischen diesen beiden Modi finden Sie unter Datenbankmodus auswählen.

Eine vollständige Liste der Messwerte für Firestore im Datastore Modus finden Sie unter Firestore im Datastore Modus – Messwerte.

Laufzeitmesswerte für Dienste

Die serviceruntime Messwerte bieten einen allgemeinen Überblick über den Traffic eines Projekts. Diese Messwerte sind für die meisten Google Cloud APIs verfügbar. Der consumed_api überwachte Ressourcentyp enthält diese allgemeinen Messwerte. Diese Messwerte werden alle 30 Minuten erfasst, wodurch die Daten geglättet werden.

Ein wichtiges Ressourcenlabel für die serviceruntime-Messwerte ist method. Dieses Label stellt die zugrunde liegende aufgerufene RPC-Methode dar. Die von Ihnen aufgerufene SDK-Methode hat möglicherweise nicht denselben Namen wie die zugrunde liegende RPC-Methode. Der Grund dafür ist, dass das SDK eine API-Abstraktion auf höherer Ebene bietet. Wenn Sie jedoch verstehen möchten, wie Ihre Anwendung mit Firestore interagiert, ist es wichtig, die Messwerte anhand des Namens der RPC-Methode zu verstehen.

Wenn Sie wissen möchten, welche zugrunde liegende RPC-Methode für eine bestimmte SDK-Methode verwendet wird, lesen Sie die API-Dokumentation.

api/request_count

Dieser Messwert gibt die Anzahl der abgeschlossenen Anfragen an, aufgeschlüsselt nach Protokoll(Anfrageprotokoll, z. B. HTTP, gRPC usw.), Antwortcode (HTTP-Antwortcode), response_code_class (Antwortcodeklasse, z. B. 2xx, 4xx usw.) und grpc_status_code (numerischer gRPC-Antwortcode). Mit diesem Messwert können Sie die allgemeine API-Anfrage beobachten und die Fehlerrate berechnen.

api/request_count-Messwert, der einen 2xx-Code zurückgibt.
Abbildung 1: Messwert „api/request_count“ (zum Vergrößern klicken).

In Abbildung 1 sind Anfragen mit einem 2xx-Code gruppiert nach Dienst und Methode zu sehen. 2xx-Codes sind HTTP-Statuscodes, die angeben, dass die Anfrage erfolgreich war.

api/request_count-Messwert, der einen 2xx-Code zurückgibt.
Abbildung 2: Messwert „api/request_count“ mit einem 2xx-Code (zum Vergrößern klicken).

In Abbildung 2 sind Commits gruppiert nach response_code zu sehen. In diesem Beispiel werden nur HTTP-200-Antworten angezeigt, was bedeutet, dass die Datenbank fehlerfrei ist.

Verwenden Sie die folgenden Laufzeitmesswerte für Dienste, um Ihre Datenbank zu überwachen.

api/request_count im Ressourcentyp „datastore_request“

Der Messwert api/request_count ist auch unter dem Ressourcentyp datastore_request mit Aufschlüsselungen nach api_method und response_code verfügbar. Verwenden Sie stattdessen diesen Messwert, um den kürzeren Erfassungszeitraum zu nutzen, mit dem sich Spitzen besser erkennen lassen.

Messwert „api/request_count“ unter der Ressource „datastore_request“
Abbildung 3: Messwert „api/request_count“ unter der Ressource „datastore_request“ (zum Vergrößern klicken).
api/request_latencies

Der Messwert api/request_latencies gibt Latenzverteilungen für alle abgeschlossenen Anfragen an.

Firestore erfasst Messwerte aus der Komponente Firestore-Dienst. Latenzmesswerte umfassen die Zeit, die zwischen dem Empfang der Anfrage durch Firestore und dem Senden der Antwort durch Firestore vergeht, einschließlich der Interaktionen mit der Speicherebene. Daher ist die Round-Trip-Latenz (RTT) zwischen dem Client und dem Firestore-Dienst nicht in diesen Messwerten enthalten.

api/request_latencies zum Berechnen der Latenzverteilung
Abbildung 4: „api/request_latencies“ zum Berechnen der Latenzverteilung.
api/request_sizes und api/response_sizes

Die Messwerte api/request_sizes und api/response_sizes geben jeweils Aufschluss über die Nutzlastgrößen (in Byte). Diese Messwerte können hilfreich sein, um Schreibarbeitslasten zu verstehen, bei denen große Datenmengen gesendet werden, oder Abfragen, die zu breit gefasst sind und große Nutzlasten zurückgeben.

Messwerte „api/request_sizes“ und „api/response_sizes“
Abbildung 5. Messwerte „api/request_sizes“ und „api/response_sizes“ (zum Vergrößern klicken).

In Abbildung 5 ist eine Heatmap für die Antwortgrößen der Methode RunQuery zu sehen. Die Größen sind stabil, der Median liegt bei 50 Byte und insgesamt zwischen 10 und 100 Byte. Die Nutzlastgrößen werden immer in unkomprimierten Byte gemessen, ohne Overhead für die Übertragungssteuerung.

Messwerte für Entitätsvorgänge

Diese Messwerte geben Verteilungen in Byte der Nutzlastgrößen für Lese- (Suchvorgänge und Abfragen) und Schreibvorgänge in einer Firestore-Datenbank an. Die Werte stellen die Gesamtgröße der Nutzlast dar. Beispiel: alle von einer Abfrage zurückgegebenen Ergebnisse. Diese Messwerte ähneln den Messwerten api/request_sizes und api/response_sizes. Der Hauptunterschied besteht darin, dass die Messwerte für Entitätsvorgänge eine detailliertere Erfassung, aber weniger detaillierte Aufschlüsselungen bieten.

Bei den Messwerten für Entitätsvorgänge wird beispielsweise die überwachte Ressource datastore_request verwendet, sodass keine Aufschlüsselung nach Dienst oder Methode erfolgt.

  • entity/read_sizes: Verteilung der Größen von gelesenen Entitäten, gruppiert nach Typ.
  • entity/write_sizes: Verteilung der Größen von geschriebenen Entitäten, gruppiert nach Vorgängen.

Indexmesswerte

Die Indexschreibgeschwindigkeit kann mit dem document/write_ops_count Messwert verglichen werden, um das Index-Fanout Verhältnis zu ermitteln.

  • index/write_count: Anzahl der Indexschreibvorgänge.
Indexschreibrate im Vergleich zur Dokumentschreibrate
Abbildung 7 Indexschreibgeschwindigkeit im Vergleich zur Dokumentschreibgeschwindigkeit (zum Vergrößern klicken).

In Abbildung 7 sehen Sie, wie die Indexschreibgeschwindigkeit mit der Dokumentschreibgeschwindigkeit verglichen werden kann. In diesem Beispiel gibt es für jeden Dokumentschreibvorgang etwa sechs Indexschreibvorgänge, was eine relativ geringe Index-Fanout-Rate ist.

TTL-Messwerte

Die TTL-Messwerte sind sowohl für Firestore Native- als auch für Firestore im Datastore-Modus-Datenbanken verfügbar. Mit diesen Messwerten können Sie die Auswirkungen der TTL Richtlinie überwachen.

  • entity/ttl_deletion_count: Gesamtzahl der von TTL-Diensten gelöschten Entitäten.
  • entity/ttl_expiration_to_deletion_delays: Zeit zwischen dem Ablauf einer Entität mit einer TTL und dem tatsächlichen Löschen.

    Wenn die TTL-Löschverzögerungen länger als 24 Stunden dauern, wenden Sie sich an den Support.

Nächste Schritte