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“ gemeldet 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 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. Das sind Schlüssel/Wert-Paare, die 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) | Ü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. |
firestore_instance | Überwachter Ressourcentyp für Firestore-Projekte, der keine Aufschlüsselung für Datenbanken bietet. | Gilt für Firestore im nativen Modus |
datastore_request | Überwachter Ressourcentyp für Datastore-Projekte, der keine Aufschlüsselung für Datenbanken bietet. | Gilt für beide Modi. |
Messwerte
Firestore ist in zwei verschiedenen Modi verfügbar: Firestore im nativen Modus 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 beide Modi finden Sie unter den folgenden Links:
Messwerte zur Dienstlaufzeit
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, sehen Sie in der API-Dokumentation nach.
Verwenden Sie die folgenden Messwerte zur Dienstlaufzeit, um Ihre Datenbank zu überwachen.
api/request_count
Dieser Messwert gibt die Anzahl der abgeschlossenen Anfragen an, aufgeschlüsselt 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). Mit diesem Messwert können Sie die allgemeine API-Anfrage beobachten und die Fehlerrate berechnen.
In Abbildung 1 sind Anfragen mit einem 2xx-Code nach Dienst und Methode gruppiert zu sehen. 2xx-Codes sind HTTP-Statuscodes, die angeben, dass die Anfrage erfolgreich war.
In Abbildung 2 sind Commits nach response_code gruppiert zu sehen. In diesem Beispiel werden nur HTTP-200-Antworten angezeigt, was bedeutet, 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. Die 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. 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 geben Einblicke in die Nutzlastgrößen (in Byte). Diese 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.
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 Dokumentvorgänge
Firestore gibt die Anzahl der Lese-, Schreib- und Löschvorgänge an. Der Messwert für Schreibvorgänge bietet eine Aufschlüsselung zwischen den Vorgängen „CREATE“ und „UPDATE“. Diese Messwerte sind auf CRUD-Vorgänge abgestimmt.
Anhand der folgenden Messwerte können Sie feststellen, ob Ihre Datenbank lese- oder schreiblastig ist, und die Rate neuer Dokumente im Vergleich zu gelöschten Dokumenten ermitteln.
document/delete_ops_count: Die Anzahl der erfolgreichen Löschvorgänge für Dokumente.document/read_ops_count: Die Anzahl der erfolgreichen Lesevorgänge für Dokumente aus Abfragen oder Suchvorgängen.document/write_ops_count: Die Anzahl der erfolgreichen Schreibvorgänge für Dokumente.
In Abbildung 6 sehen Sie, wie Sie ein Verhältnis erstellen, das das Verhältnis von gelesenen zu geschriebenen Dokumenten zeigt. In diesem Beispiel ist die Anzahl der gelesenen Dokumente etwa 6% höher als die Anzahl der geschriebenen Dokumente.
Messwerte für die Nutzlastgröße
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 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.
Bei den Messwerten für Dokumentvorgä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 Dokumenten.entity/write_sizes: Verteilung der Größen von geschriebenen Dokumenten.
Abrechnungsmesswerte (Enterprise-Version)
Die folgenden Abrechnungsmesswerte sind nur für die Firestore Enterprise-Version verfügbar.
Anhand dieser Messwerte können Sie die Abrechnungsnutzung nachvollziehen. Diese Messwerte enthalten keine Abrechnung für Administratorvorgänge (Indexierung, Import, Export und Bulk-Löschvorgänge).
api/billable_read_units: Die Anzahl der abrechenbaren Leseeinheiten. Die Nutzung kann nach Dienstname und API-Methode aufgeschlüsselt werden.api/billable_realtime_read_units: Die Anzahl der abrechenbaren Einheiten für Echtzeitaktualisierungen aus Echtzeitaktualisierungen.api/billable_write_units: Die Anzahl der abrechenbaren Schreibvorgänge. Die Nutzung kann nach Dienstname und API-Methode aufgeschlüsselt werden.document/billable_managed_delete_write_units: Die Anzahl der abrechenbaren Schreibvorgänge aus verwalteten Löschdiensten wie TTL.
Indexmesswerte
Die Schreibraten für Indexe können mit dem document/write_ops_count Messwert
verglichen werden, um das Index-Fanout
Verhältnis zu ermitteln.
index/write_count: Anzahl der Indexschreibvorgänge.
In Abbildung 7 sehen Sie, wie die Indexschreibrate mit der Dokumentenschreibrate verglichen werden kann. In diesem Beispiel gibt es für jeden Dokumentenschreibvorgang etwa sechs Indexschreibvorgänge. Das ist eine relativ niedrige Index-Fanout-Rate.
Clients, die über Firebase SDKs direkt mit der Datenbank verbunden sind
Es sind zwei Messwerte für den Typ „Gauge“ sind verfügbar, um die Aktivität von Clients zu verfolgen, 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 die Clients gestreamt werden.
network/active_connections: Die Anzahl der aktiven Verbindungen zu diesem Zeitpunkt. Jeder Web- oder Mobilclient hat eine Verbindung.network/snapshot_listeners: Die Anzahl der Snapshot-Listener, die derzeit für alle verbundenen Clients registriert sind. Es können mehrere Verbindungen pro Client vorhanden sein.
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 im nativen Modus als auch für Firestore im Datastore-Modus verfügbar. Mit diesen Messwerten können Sie die Auswirkungen der TTL Richtlinie überwachen.
document/ttl_deletion_count: Gesamtzahl der Dokumente, die von TTL-Diensten gelöscht wurden.
In Abbildung 9 sehen Sie die Rate der Dokumente, die pro Minute über einen Zeitraum von mehreren Tagen gelöscht wurden.
document/ttl_expiration_to_deletion_delays: Zeit, die zwischen dem Ablauf eines Dokuments mit einer TTL und dem tatsächlichen Löschen des Dokuments vergangen ist.
In Abbildung 10 sehen Sie, dass dieser Messwert eine Verteilung der Zeit in Sekunden angibt, die Firestore zum Löschen von Dokumenten mit TTL-Richtlinien benötigt hat. Im 99.Perzentil dauert es weniger als 0,5 Sekunden, bis abgelaufene TTL-Dokumente gelöscht werden. Das bedeutet, dass das System normal funktioniert. Firestore löscht abgelaufene Dokumente in der Regel innerhalb von 24 Stunden. Dies ist jedoch nicht garantiert. Wenn es länger als 24 Stunden dauert, wenden Sie sich an den Support.
Nächste Schritte
- Informationen zum Aufrufen von Messwerten im Cloud Monitoring-Dashboard
- Nutzung überwachen, um Lese-, Schreib- und Löschvorgänge für Dokumente im Zeitverlauf zu ermitteln