Leistungsüberwachung in Firestore
Cloud Monitoring erfasst Messwerte, Ereignisse und Metadaten aus Google Cloud-Produkten. Die Daten, die im Dashboard zur Nutzung und zur Nutzung von Sicherheitsregeln erfasst werden, können auch über Cloud Monitoring für eine detailliertere Analyse abgerufen 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 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. Gemonitorte Ressourcen enthalten eine Reihe von Messwerten, die untersucht, in einem Dashboard dargestellt oder zum Erstellen von Benachrichtigungen verwendet werden können. Jede Ressource hat außerdem eine Reihe von Ressourcenlabels. Das sind Schlüssel/Wert-Paare, die zusätzliche Informationen zur Ressource enthalten. Ressourcenlabels sind für alle mit der Ressource verknüpften Messwerte verfügbar.
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 mit Aufschlüsselungen für project , location * und database_id . Das database_id -Label ist (default) für Datenbanken, die ohne einen bestimmten Namen erstellt wurden. | Alle Messwerte, die für beide Modi unterstützt werden, mit Ausnahme der folgenden Messwerte, die für Firestore im Datastore-Modus nicht unterstützt werden:
|
firestore_instance | Überwachter Ressourcentyp für Firestore-Projekte, der keine Aufschlüsselung nach Datenbanken enthält. | Gilt für Firestore-nativ |
datastore_request | Überwachter Ressourcentyp für Datastore-Projekte, der keine Aufschlüsselung nach Datenbanken enthält. | Gilt für beide Modi. |
Messwerte
Firestore ist in zwei verschiedenen Modi verfügbar: Firestore Native und Firestore im Datastore-Modus. Einen Funktionsvergleich dieser 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:
Messwerte zur Dienstlaufzeit
Die Messwerte serviceruntime
bieten einen allgemeinen Überblick über die Zugriffe eines Projekts. Diese Messwerte sind für die meisten Google Cloud APIs verfügbar. Der Typ der überwachten Ressource consumed_api
enthält diese gängigen Messwerte. Diese Messwerte werden alle 30 Minuten abgetastet, wodurch die Daten geglättet werden.
Ein wichtiges Ressourcenlabel für die serviceruntime
-Messwerte ist method
. Dieses Label steht für die aufgerufene zugrunde liegende RPC-Methode. Die von Ihnen aufgerufene SDK-Methode muss nicht unbedingt mit der zugrunde liegenden RPC-Methode übereinstimmen. Das liegt daran, 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.
Informationen zur zugrunde liegenden RPC-Methode einer bestimmten SDK-Methode finden Sie in der API-Dokumentation.
Verwenden Sie die folgenden Messwerte zur Dienstlaufzeit, um Ihre Datenbank zu überwachen.
api/request_count
Dieser Messwert gibt die Anzahl der abgeschlossenen Anfragen 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) an. Verwenden Sie diesen Messwert, um die API-Anfrage insgesamt zu beobachten und die Fehlerrate zu berechnen.
In Abbildung 1 sind Anfragen zu sehen, 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 zu sehen, die nach response_code
gruppiert sind. In diesem Beispiel sehen wir nur HTTP-Antworten vom Typ 200, was bedeutet, dass die Datenbank in Ordnung ist.
api/request_latencies
Der Messwert api/request_latencies
enthält Latenzverteilungen für alle abgeschlossenen Anfragen.
Firestore erfasst Messwerte aus der Komponente Firestore-Dienst. Latenzmesswerte umfassen den Zeitraum zwischen dem Empfang der Anfrage durch Firestore und dem Senden der Antwort durch Firestore, einschließlich der Interaktionen mit der Speicherebene. Daher ist die RTT (Round-Trip-Latenz) 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, die große Datenmengen senden oder zu breit gefasste Abfragen sind und große Nutzlasten zurückgeben.
In Abbildung 5 ist eine Heatmap für Antwortgrößen für die Methode RunQuery
zu sehen.
Die Größen sind gleichmäßig, der Median liegt bei 50 Byte und insgesamt liegen sie zwischen 10 und 100 Byte. Die Nutzlastgrößen werden immer in unkomprimierten Byte gemessen, ohne Übertragungssteuerungsoverhead.
Messwerte für die Dokumentenbearbeitung
Firestore bietet Zählungen für Lese-, Schreib- und Löschvorgänge. Der Messwert „Schreiben“ enthält eine Aufschlüsselung nach den Vorgängen „CREATE“ und „UPDATE“. Diese Messwerte sind an CRUD-Vorgänge ausgerichtet.
Anhand der folgenden Messwerte können Sie feststellen, ob Ihre Datenbank hauptsächlich gelesen oder geschrieben wird, und wie viele neue Dokumente im Vergleich zu gelöschten Dokumenten erstellt werden.
document/delete_ops_count
: Die Anzahl der erfolgreichen Dokumentlöschvorgänge.document/read_ops_count
: Die Anzahl der erfolgreichen Dokumentlesevorgänge aus Abfragen oder Suchanfragen.document/write_ops_count
: Die Anzahl der erfolgreichen Dokumentschreibvorgänge.
In Abbildung 6 sehen Sie, wie Sie ein Verhältnis erstellen, das das Verhältnis der gelesenen zu den geschriebenen Dokumente zeigt. In diesem Beispiel ist die Anzahl der gelesenen Dokumente etwa 6% höher als die Anzahl der geschriebenen Dokumente.
Messwerte für die Dokumentenbearbeitung
Diese Messwerte liefern die Verteilung der Nutzlastgrößen in Byte für Lesevorgänge (Suchanfragen und Abfragen) und Schreibvorgänge in einer Firestore-Datenbank. Die Werte geben die Gesamtgröße der Nutzlast an. Beispielsweise alle Ergebnisse, 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.
Für die Messwerte zu Dokumentvorgängen wird beispielsweise die überwachte Ressource datastore_request
verwendet, sodass keine Aufschlüsselung nach Dienst oder Methode erfolgt.
entity/read_sizes
: Verteilung der Größe der gelesenen Dokumente.entity/write_sizes
: Verteilung der Größe schriftlicher Dokumente.
Indexmesswerte
Die Schreibraten von Indexen können mit dem Messwert document/write_ops_count
verglichen werden, um das Index-Fan-out-Verhältnis zu ermitteln.
index/write_count
: Anzahl der Indexeinträge.
In Abbildung 7 sehen Sie, wie sich die Schreibrate des Index mit der Schreibrate des Dokuments vergleichen lässt. In diesem Beispiel werden für jeden Dokumentschreibvorgang etwa sechs Indexschreibvorgänge ausgeführt. Das ist eine relativ geringe Indexverzweigungsrate.
Clients, die über Firebase SDKs direkt mit der Datenbank verbunden sind
Es gibt zwei Messwerte, mit denen sich Aktivitäten von Clients erfassen lassen, die entweder über Mobil-SDKs, Web-SDKs oder beide 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 die 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 derzeit bei allen verbundenen Clients registrierten Snapshot-Listener. Es kann mehrere Verbindungen pro Client geben.
Sie können diese Messwerte in der Firebase Console auf dem Tab Usage
in der Firestore-Datenbank aufrufen.
TTL-Messwerte
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 beobachten.
document/ttl_deletion_count
: Die Gesamtzahl der Dokumente, die von TTL-Diensten gelöscht wurden.
In Abbildung 9 sehen Sie die Anzahl der Dokumente, die im Laufe mehrerer Tage pro Minute gelöscht wurden.
document/ttl_expiration_to_deletion_delays
: Zeitspanne zwischen dem Ablauf eines Dokuments mit einer TTL und dem tatsächlichen Löschen.
In Abbildung 10 sehen Sie, dass dieser Messwert eine Verteilung der Zeit in Sekunden enthält, die Firestore zum Löschen von Dokumenten mit TTL-Richtlinien benötigt hat. Das Löschen von Dokumenten, deren TTL abgelaufen ist, dauert beim 99.Perzentil weniger als 0,5 Sekunden. Das bedeutet, dass das System normal funktioniert. In der Regel werden abgelaufene Dokumente in Firestore innerhalb von 24 Stunden gelöscht. 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
- Überwachen Sie die Nutzung, um Lese-, Schreib- und Löschvorgänge von Dokumenten im Zeitverlauf zu identifizieren.