Leistungsüberwachung in Firestore
Cloud Monitoring erfasst Messwerte, Ereignisse und Metadaten aus Google Cloud -Produkten. Die Daten, die im Dashboard „Nutzung“ und unter Nutzung von Sicherheitsregeln angezeigt werden, können auch über Cloud Monitoring für eine detailliertere Analyse aufgerufen werden. 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 aufrufen und Benachrichtigungen einrichten.
Überwachte Ressourcen
Eine überwachte Ressource in Cloud Monitoring stellt eine logische oder physische Einheit dar, z. B. eine virtuelle Maschine, eine Datenbank oder eine Anwendung. Überwachte Ressourcen enthalten eine Reihe von Messwerten, die untersucht, in einem Dashboard dargestellt 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 Firestore-Leistung mit den folgenden Ressourcen überwacht:
Ressourcen | Beschreibung | Unterstützter Datenbankmodus |
firestore.googleapis.com/Database (empfohlen) | Typ der überwachten Ressource, die Aufschlüsselungen für project , location * und database_id bietet . Das Label database_id wird für Datenbanken, die ohne einen bestimmten Namen erstellt wurden, zu (default) . |
Gilt für beide Modi. |
firestore_instance | Überwachter Ressourcentyp für Firestore-Projekte. Es werden keine Aufschlüsselungen für Datenbanken bereitgestellt. | Gilt für Firestore-nativ |
datastore_request | Überwachter Ressourcentyp für Datastore-Projekte. Es werden keine Aufschlüsselungen für Datenbanken bereitgestellt. | Gilt für beide Modi. |
Messwerte
Firestore ist in zwei verschiedenen Modi verfügbar: Firestore Native und Firestore im Datastore-Modus. Einen Funktionsvergleich zwischen diesen beiden Modi finden Sie unter Zwischen Datenbankmodi wählen.
Eine vollständige Liste der Messwerte für beide Modi finden Sie unter den folgenden Links:
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 überwachte Ressourcentyp consumed_api
enthält diese allgemeinen Messwerte. Diese Messwerte werden alle 30 Minuten erfasst, sodass die Daten geglättet werden.
Ein wichtiges Ressourcenlabel für die serviceruntime
-Messwerte ist method
. Dieses Label steht für die zugrunde liegende RPC-Methode, die aufgerufen wird. Die SDK-Methode, die Sie aufrufen, muss nicht unbedingt denselben Namen wie die zugrunde liegende RPC-Methode haben. Das liegt daran, dass das SDK eine API-Abstraktion auf hoher Ebene bietet. Wenn Sie jedoch nachvollziehen 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, sehen Sie in der API-Dokumentation nach.
Verwenden Sie die folgenden Messwerte für die Dienstlaufzeit, um Ihre Datenbank zu überwachen.
api/request_count
Mit dieser Messwert wird die Anzahl der abgeschlossenen Anfragen nach Protokoll(Anfrageprotokoll wie HTTP, gRPC usw.), Antwortcode (HTTP-Antwortcode), response_code_class
(Antwortcodeklasse wie 2xx, 4xx usw.) und grpc_status_code
(numerischer gRPC-Antwortcode) angegeben. Mit diesem Messwert können Sie die gesamte API-Anfrage beobachten und die Fehlerrate berechnen.

Abbildung 1 zeigt Anfragen, die einen 2xx-Code zurückgeben, gruppiert nach Dienst und Methode. 2xx-Codes sind HTTP-Statuscodes, die angeben, dass die Anfrage erfolgreich war.

In Abbildung 2 sind Commits nach response_code
gruppiert. In diesem Beispiel sehen wir nur HTTP-200-Antworten, was darauf hindeutet, dass die Datenbank fehlerfrei ist.
api/request_latencies
Der Messwert api/request_latencies
gibt die Latenzverteilungen für alle abgeschlossenen Anfragen an.
Firestore erfasst Messwerte aus der Komponente Firestore-Dienst. Latenzmesswerte umfassen die Zeit, die Firestore benötigt, um die Anfrage zu empfangen und die Antwort zu senden, einschließlich der Interaktionen mit der Speicherebene. Aus diesem Grund ist die Round-Trip-Latenz (RTT) zwischen dem Client und dem Firestore-Dienst nicht in diesen Messwerten enthalten.

api/request_sizes und api/response_sizes
Die Messwerte api/request_sizes
und api/response_sizes
liefern Informationen zur Nutzlastgröße (in Byte). Sie 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.

Abbildung 5 zeigt eine Heatmap für die Reaktionsgrößen für die RunQuery
-Methode.
Die Größen sind stabil, der Median liegt bei 50 Byte und die Werte insgesamt zwischen 10 und 100 Byte. Die Nutzlastgröße wird immer in unkomprimierten Byte gemessen, ohne Übertragungssteuerungs-Overhead.
Messwerte für Dokumentvorgänge
Firestore bietet Zählungen für Lese-, Schreib- und Löschvorgänge. Der Schreibvorgang-Messwert bietet eine Aufschlüsselung zwischen den Vorgängen „CREATE“ und „UPDATE“. Diese Messwerte sind an CRUD-Vorgängen ausgerichtet.
Anhand der folgenden Messwerte können Sie nachvollziehen, ob Ihre Datenbank hauptsächlich für Lese- oder Schreibvorgänge verwendet wird und wie viele neue Dokumente im Vergleich zu gelöschten Dokumenten vorhanden sind.
document/delete_ops_count
: Die Anzahl der erfolgreichen Dokumentlöschvorgänge.document/read_ops_count
: Die Anzahl der erfolgreichen Dokumentlesevorgänge aus Abfragen oder Suchvorgängen.document/write_ops_count
: Die Anzahl der erfolgreichen Dokumentschreibvorgänge.

Abbildung 6 zeigt, wie Sie ein Verhältnis erstellen, das das Verhältnis von gelesenen zu geschriebenen Dokumenten angibt. In diesem Beispiel ist die Anzahl der gelesenen Dokumente etwa 6% höher als die Anzahl der geschriebenen Dokumente.
Messwerte für Dokumentvorgänge
Diese Messwerte geben die Verteilungen der Nutzlastgrößen in Byte für Lese- (Such- und Abfrage-) und Schreibvorgänge in einer Firestore-Datenbank an. Die Werte geben die Gesamtgröße der Nutzlast an. Das können beispielsweise Ergebnisse sein, die von einer Abfrage zurückgegeben werden.
Diese Messwerte ähneln den Messwerten api/request_sizes
und api/response_sizes
. Der Hauptunterschied besteht darin, dass die Messwerte für Dokumentvorgänge eine detailliertere Stichprobenerhebung, aber weniger detaillierte Aufschlüsselungen bieten.
Bei den Messwerten für Dokumentvorgänge wird beispielsweise die überwachte Ressource datastore_request
verwendet. Daher gibt es keine Aufschlüsselung nach Dienst oder Methode.
entity/read_sizes
: Verteilung der Größen der gelesenen Dokumente.entity/write_sizes
: Verteilung der Größen von geschriebenen Dokumenten.
Indexmesswerte
Die Indexschreibvorgänge können dem Messwert document/write_ops_count
gegenübergestellt werden, um das Index-Fanout-Verhältnis zu ermitteln.
index/write_count
: Anzahl der Indexschreibvorgänge.

In Abbildung 7 sehen Sie, wie die Indexschreibgeschwindigkeit der Dokumentschreibgeschwindigkeit gegenübergestellt werden kann. In diesem Beispiel gibt es für jeden Dokument-Schreibvorgang etwa sechs Index-Schreibvorgänge. Das ist eine relativ geringe Index-Fanout-Rate.
Clients, die über Firebase SDKs direkt mit der Datenbank verbunden sind
Es gibt zwei Messwerttypen, mit denen sich Aktivitäten von Clients erfassen lassen, die über Mobile SDKs, Web-SDKs oder beides direkt mit Firestore-Datenbanken verbunden sind. Diese Messwerte umfassen eine Funktion für Echtzeit-Snapshot-Listener, bei der relevante Änderungen in der Datenbank sofort an Clients gestreamt werden.
network/active_connections
: Die Anzahl der aktiven Verbindungen zu diesem Zeitpunkt. Jeder Web- oder mobile Client hat eine Verbindung.network/snapshot_listeners
: Die Anzahl der Snapshot-Listener, die derzeit für alle verbundenen Clients registriert sind. Pro Client können mehrere Verbindungen bestehen.
Sie können diese Messwerte in der Firebase Console auf dem Tab Usage
in der Firestore-Datenbank aufrufen.

Messwerte für die TTL
Die TTL-Messwerte sind sowohl für Firestore-Datenbanken im nativen Modus als auch für Firestore-Datenbanken im Datastore-Modus verfügbar. Mit diesen Messwerten können Sie die Auswirkungen der erzwungenen TTL-Richtlinie überwachen.
document/ttl_deletion_count
: Gesamtzahl der von TTL-Diensten gelöschten Dokumente.

Abbildung 9 zeigt die Anzahl der Dokumente, die über mehrere Tage hinweg pro Minute gelöscht wurden.
document/ttl_expiration_to_deletion_delays
: Die Zeit, die zwischen dem Ablauf eines Dokuments mit einer TTL und dem tatsächlichen Löschen vergangen ist.

Abbildung 10 zeigt die Verteilung der Zeit in Sekunden, die Firestore zum Löschen von Dokumenten mit TTL-Richtlinien benötigt hat. Das Löschen von Dokumenten, deren TTL abgelaufen ist, dauert im 99.Perzentil weniger als 0,5 Sekunden. Das bedeutet, dass das System normal funktioniert. Firestore löscht abgelaufene Dokumente in der Regel innerhalb von 24 Stunden, dies kann jedoch nicht garantiert werden. Wenn es länger als 24 Stunden dauert, wenden Sie sich an den Support.
Nächste Schritte
- Informationen zum Aufrufen von Messwerten mit dem Cloud Monitoring-Dashboard
- Nutzung beobachten, um Lese-, Schreib- und Löschvorgänge von Dokumenten im Zeitverlauf zu ermitteln.