Datenbankleistung überwachen

Es gibt verschiedene Möglichkeiten, die Leistung Ihrer Firebase-Echtzeitdatenbank zu überwachen und potenzielle Probleme in Ihrer App zu erkennen. Ein Blick auf die eingehende und ausgehende Bandbreite und Auslastung Ihrer App kann Ihnen auch eine Vorstellung davon geben, was auf Ihrer Rechnung zu erwarten ist. Wenn etwas nicht in Ordnung zu sein scheint, kann es außerdem hilfreich sein, sich ein klares Bild von den Vorgängen Ihrer Datenbank zu machen.

Auf dieser Seite wird die Leistungsüberwachung der Echtzeitdatenbank erläutert. Informationen zur Nutzungsüberwachung finden Sie unter Datenbanknutzung überwachen .

Verwenden Sie Überwachungstools für Echtzeitdatenbanken

Sie können Daten über die Leistung Ihrer Realtime Database mit einigen verschiedenen Tools sammeln, je nach benötigter Granularität.

Verwenden Sie das Realtime Database Profiler-Tool

Das Echtzeit-Datenbank-Profiler-Tool bietet einen Echtzeit-Überblick über Lese-/Schreibvorgänge in Ihrer Datenbank. Der Bericht enthält neben nicht indizierten Abfragen Informationen zur Geschwindigkeit und Nutzlastgröße jeder Operation. Es enthält jedoch keine historischen Informationen oder Statistiken über den Verbindungsaufwand und sollte nicht zur Schätzung der Abrechnungskosten verwendet werden .

Weitere Informationen zur Verwendung des Profiler-Tools finden Sie unter Profilerstellung Ihrer Datenbank .

Verwenden Sie die Firebase-Konsole

Die Registerkarte Nutzung in der Firebase-Konsole bietet Informationen über gleichzeitige Verbindungen zu Ihrer Datenbank, wie viele Daten Sie speichern, ausgehende Bandbreite (einschließlich Protokoll- und Verschlüsselungs-Overhead) und die Belastung Ihrer Datenbank in 1-Minuten-Intervallen. Die Registerkarte „Nutzung “ gibt Ihnen zwar einen genaueren Überblick über die Gesamtleistung Ihrer Datenbank, aber Sie können möglicherweise nicht genügend Details aufschlüsseln, um potenzielle Leistungsprobleme zu beheben.

Verwenden Sie Cloud-Monitoring

Mit Cloud Monitoring von Google Cloud können Sie den Metrik-Explorer verwenden, um einzelne Leistungsmesswerte anzuzeigen, oder verschiedene Dashboards mit Diagrammen erstellen, die verschiedene Kombinationen von Leistungsmesswerten im Laufe der Zeit anzeigen. Die Echtzeit-Datenbank-Integration mit Cloud Monitoring bietet die tiefste Granularität.

Die Schritte zum Einrichten von Cloud Monitoring werden in Datenbanknutzung überwachen beschrieben.

In den folgenden Abschnitten finden Sie Tipps zur Verwendung bestimmter Cloud Monitoring-Messwerte zur Erkennung von Leistungsproblemen.

Überwachen Sie die Leistung in Cloud Monitoring

Wenn Sie Probleme mit der Leistung haben, einschließlich Verfügbarkeit oder Latenz, sollten Sie Cloud Monitoring verwenden, um die folgenden Messwerte zu überwachen. Beachten Sie, dass allen Metriktypnamen das Präfix firebasedatabase.googleapis.com/ vorangestellt ist.

Metrikname Beschreibung
Datenbank laden

io/database_load . Verwenden Sie diese Metrik, um zu überwachen, wie viel Ihrer verfügbaren Datenbankbandbreite im Laufe der Zeit für die Verarbeitung von Anforderungen verwendet wird. Möglicherweise treten Leistungsprobleme auf, wenn sich Ihre Datenbanklast der insgesamt verfügbaren Bandbreite nähert. Sie können auch sehen, welche Vorgangstypen die meiste Last nutzen, und entsprechende Fehler beheben. Die gemeldete Auslastung kann bei Vorgängen, die länger als eine Minute dauern, 100 % überschreiten. Dies geschieht, wenn die über mehrere Minuten verwendete Gesamtbandbreite nach Abschluss des Vorgangs in dem minutenlangen Berichtsintervall zusammengefasst wird.

Netzwerk wegen Überschreitung deaktiviert

network/disabled_for_overages . Diese Metrik spiegelt alle Ausfälle wider, die möglicherweise aufgetreten sind, wenn Ihre Echtzeitdatenbank Bandbreiten- oder Netzwerkbeschränkungen überschritten hat.

Speicher wegen Überschreitung deaktiviert

storage/disabled_for_overages . Diese Metrik spiegelt alle Ausfälle wider, die möglicherweise aufgetreten sind, wenn Ihre Echtzeitdatenbank Speichergrenzen überschritten hat.

Kombinieren Sie Metriken in Diagrammen auf Ihrem Dashboard, um hilfreiche Einblicke und Übersichten zu erhalten. Probieren Sie zum Beispiel die folgenden Kombinationen aus:

  • Vorgänge: Verwenden Sie die Metrik io/database_load um zu sehen, wie viel Ihrer gesamten Datenbanklast von jedem Vorgangstyp verwendet wird. Achten Sie darauf, io/database_load nach Typ zu gruppieren, um Fehler bei verschiedenen Vorgangstypen zu beheben.
  • Speicher: Verwenden Sie storage/limit und storage/total_bytes , um Ihre Speicherauslastung im Verhältnis zu den Speicherlimits der Echtzeitdatenbank zu überwachen. Sie können auch storage/disabled_for_overages hinzufügen, um zu sehen, ob Ihre App aufgrund von überschrittenen Speicherlimits ausgefallen ist.
  • SSL-Overhead: Verwenden Sie network/https_requests_count um zu überwachen, wie viele SSL-Verbindungsanfragen Ihre Datenbank erhalten hat, und teilen Sie Anfragen, die ein vorhandenes SSL-Sitzungsticket wiederverwendet haben, mit dem reused_ssl_session Filter aus. Sie können dies anhand von network/sent_bytes_count und network/sent_payload_and_protocol_bytes_count messen, um zu überwachen, ob Ihre App SSL-Sitzungstickets effizient verwendet oder nicht.

Sie können auch Warnungen über Cloud Monitoring einrichten und Benachrichtigungen basierend auf Echtzeitdatenbank-Metriken erhalten. Sie können sich beispielsweise dafür entscheiden, eine Benachrichtigung zu erhalten, wenn sich Ihr io/database_load einem bestimmten Schwellenwert nähert.

Sehen Sie sich die vollständige Liste der Echtzeitdatenbank-Metriken an, die über Cloud Monitoring verfügbar sind .

Datenbankladetypen

Die Metrik io/database_load stellt auch eine Bezeichnung dafür bereit, welcher Vorgangstyp die Last verursacht hat. Im Folgenden sind die möglichen Arten von gemessenen Vorgängen aufgeführt:

  • admin : Admin-Operationen wie das Festlegen von Regeln und das Lesen von Projektmetadaten.
  • auth : Überprüfung der Authentifizierung von Dienstkonten oder Firebase-Authentifizierung für einen einzelnen Client.
  • client_management : Behandlung des Hinzufügens und Entfernens gleichzeitiger Verbindungen, dies umfasst das Ausführen von Trennungsvorgängen beim Entfernen.
  • get_shallow : Abrufen der Daten von einem REST GET mit shallow=true .
  • get : Verarbeitung von REST GET-Operationen.
  • listen : Abrufen der Anfangsdaten für on -and- once -Operationen von verbundenen Clients.
  • on_disconnect : Registrierung bei Trennungsvorgängen von Clients.
  • put : Handhabung set Operationen von Clients oder REST PUT-Operationen.
  • transaction : Durchführen von Transaktionen aus bedingten REST-Anforderungen oder einer transaction von einem Client.
  • update : Verarbeitung von update oder REST-PATCH-Anforderungen.

Überwachen Sie Sicherheitsregeln in Cloud Monitoring

Sie können auch die Auswertung von Sicherheitsregeln analysieren. Beachten Sie, dass allen Metriktypnamen das Präfix firebasedatabase.googleapis.com/ vorangestellt ist.

Metrikname Beschreibung
Regelauswertungen rules/evaluation_count . Die Anzahl der Auswertungen von Echtzeit-Datenbankregeln, die als Reaktion auf Schreib- oder Leseanforderungen durchgeführt wurden. Sie können diese Metrik nach dem Ergebnis der Anfrage aufschlüsseln (ALLOW, DENY oder ERROR).

Passen Sie Ihr Cloud Monitoring-Diagramm für Regelauswertungen nach Bedarf an, z. B. durch Filtern nach bestimmten Auswertungsergebnissen, ALLOW, DENY oder ERROR. Das Einrichten und Anpassen von Diagrammen wird in Überwachen der Datenbanknutzung behandelt.

Sehen Sie sich die vollständige Liste der Echtzeitdatenbank-Metriken an, die über Cloud Monitoring verfügbar sind .