Datenbankleistung überwachen

Es gibt verschiedene Möglichkeiten, die Leistung von Firebase Realtime Database zu überwachen und potenzielle Probleme in Ihrer App zu erkennen. Wenn Sie sich die eingehende und ausgehende Bandbreite und die Last Ihrer App ansehen, erhalten Sie außerdem eine Vorstellung davon, wie Ihre Rechnung aussehen wird. Darüber hinaus kann es hilfreich sein, sich damit bei möglichen Problemen ein genaues Bild von den Vorgängen in einer Datenbank zu machen.

Auf dieser Seite wird die Leistungsüberwachung von Realtime Database behandelt. Informationen zur Nutzungsüberwachung finden Sie unter Datenbanknutzung überwachen.

Realtime Database-Monitoring-Tools verwenden

Je nach gewünschtem Detaillierungsgrad können Sie Daten zur Leistung Ihrer Realtime Database mit verschiedenen Tools erheben.

Realtime Database-Profiler-Tool verwenden

Das Realtime Database-Profiler-Tool bietet eine Echtzeitübersicht über Lese-/Schreibvorgänge in Ihrer Datenbank. Der Bericht enthält Informationen zur Geschwindigkeit und Nutzlastgröße der einzelnen Vorgänge sowie zu nicht indexierten Abfragen. Sie enthält jedoch keine Verlaufsdaten oder Statistiken zum Verbindungs-Overhead und sollte nicht verwendet werden, um Abrechnungskosten zu schätzen.

Weitere Informationen zur Verwendung des Profiler-Tools finden Sie unter Datenbankprofil erstellen.

Firebase-Konsole verwenden

Auf dem Tab Nutzung in der Firebase-Konsole finden Sie Informationen zu gleichzeitigen Verbindungen zu Ihrer Datenbank, zur Menge der gespeicherten Daten, zur ausgehenden Bandbreite (einschließlich Protokoll- und Verschlüsselungs-Overhead) und zur Last Ihrer Datenbank in einminütigen Intervallen. Auf dem Tab Nutzung erhalten Sie zwar einen genaueren Überblick über die Gesamtleistung Ihrer Datenbank, aber möglicherweise können Sie nicht genügend ins Detail gehen, um potenzielle Leistungsprobleme zu beheben.

Cloud Monitoring verwenden

Mit Cloud Monitoring aus Google Cloud können Sie im Metrics Explorer einzelne Leistungsmesswerte aufrufen oder verschiedene Dashboards mit Diagrammen erstellen, in denen verschiedene Kombinationen von Leistungsmesswerten im Zeitverlauf dargestellt werden. Die Realtime Database-Integration mit Cloud Monitoring bietet die höchste Granularität.

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

In den folgenden Abschnitten finden Sie Tipps zur Verwendung bestimmter Cloud Monitoring-Messwerte, um Leistungsprobleme zu erkennen.

Leistung in Cloud Monitoring beobachten

Wenn Sie Probleme mit der Leistung haben, z. B. mit der Verfügbarkeit oder Latenz, können Sie Cloud Monitoring verwenden, um die folgenden Messwerte zu überwachen. Alle Messwerttypnamen haben das Präfix firebasedatabase.googleapis.com/.

Messwertname Beschreibung
Datenbanklast

io/database_load. Mit diesem Messwert können Sie beobachten, wie viel von der verfügbaren Datenbankbandbreite im Zeitverlauf für die Verarbeitung von Anfragen verwendet wird. Leistungsprobleme können auftreten, wenn die Datenbanklast sich der insgesamt verfügbaren Bandbreite nähert. Sie können auch sehen, welche Vorgangstypen die meiste Last verursachen, und entsprechend Fehler beheben. Die gemeldete Last kann bei Vorgängen, die länger als eine Minute dauern, 100% überschreiten. Das passiert, wenn die insgesamt über mehrere Minuten verwendete Bandbreite nach Abschluss des Vorgangs in das einminütige Berichtsintervall komprimiert wird.

Netzwerk wegen Überschreitung des Datenvolumens deaktiviert

network/disabled_for_overages: Dieser Messwert gibt an, ob es zu Ausfällen gekommen ist, weil Ihr Realtime Database Bandbreiten- oder Netzwerklimits überschritten hat.

Speicherplatz aufgrund von Überschreitungen deaktiviert

storage/disabled_for_overages. Dieser Messwert gibt an, ob es zu Ausfällen gekommen ist, weil Ihr Realtime Database Speicherlimits überschritten hat.

Kombinieren Sie Messwerte in Diagrammen in Ihrem Dashboard, um hilfreiche Statistiken und Übersichten zu erhalten. Probieren Sie beispielsweise die folgenden Kombinationen aus:

  • Vorgänge:Mit dem Messwert io/database_load können Sie sehen, wie viel der gesamten Datenbanklast von den einzelnen Vorgangstypen verwendet wird. Gruppieren Sie io/database_load nach Typ, um Probleme mit verschiedenen Vorgangstypen zu beheben.
  • Speicher:Mit storage/limit und storage/total_bytes können Sie die Speicherauslastung im Verhältnis zu den Realtime Database-Speicherlimits überwachen. Sie können auch storage/disabled_for_overages hinzufügen, um zu sehen, ob Ihre App aufgrund überschrittener Speicherplatzlimits Ausfallzeiten hatte.
  • SSL-Overhead:Mit network/https_requests_count können Sie beobachten, wie viele SSL-Verbindungsanfragen Ihre Datenbank erhalten hat. Mit dem Filter reused_ssl_session können Sie Anfragen herausfiltern, bei denen ein vorhandenes SSL-Sitzungsticket wiederverwendet wurde. Sie können dies anhand von network/sent_bytes_count und network/sent_payload_and_protocol_bytes_count messen, um zu prüfen, ob Ihre App SSL-Sitzungstickets effizient verwendet.

Sie können auch Benachrichtigungen über Cloud Monitoring einrichten und Benachrichtigungen basierend auf Realtime Database-Messwerten erhalten. Sie können sich beispielsweise benachrichtigen lassen, wenn sich Ihr io/database_load einem bestimmten Grenzwert nähert.

Vollständige Liste der Realtime Database-Messwerte, die über Cloud Monitoring verfügbar sind

Typen von Datenbanklast

Der Messwert io/database_load enthält auch ein Label, das angibt, welcher Vorgangstyp die Last verursacht hat. Folgende Arten von Vorgängen werden gemessen:

  • admin: Administratorvorgänge wie das Festlegen von Regeln und das Lesen von Projektmetadaten.
  • auth: Authentifizierung über Dienstkonten oder Firebase-Authentifizierung für einen einzelnen Client überprüfen.
  • client_management: Verarbeitung des Hinzufügens und Entfernens gleichzeitiger Verbindungen, einschließlich des Ausführens von Trennungsvorgängen beim Entfernen.
  • get_shallow: Daten werden mit einem REST-GET-Befehl mit shallow=true abgerufen.
  • get: REST-GET-Vorgänge verarbeiten.
  • listen: Abrufen der ursprünglichen Daten für on- und once-Vorgänge von verbundenen Clients.
  • on_disconnect: Registrieren von Trennungsvorgängen von Clients.
  • put: Verarbeitung von set-Vorgängen von Clients oder REST PUT-Vorgängen.
  • transaction: Ausführen von Transaktionen über bedingte REST-Anfragen oder einen transaction-Vorgang von einem Client.
  • update: Verarbeitung von update-Vorgängen oder REST-PATCH-Anfragen.

Sicherheitsregeln in Cloud Monitoring überwachen

Sie können auch die Auswertung von Sicherheitsregeln analysieren. Alle Messwerttypnamen haben das Präfix firebasedatabase.googleapis.com/.

Messwertname Beschreibung
Regelevaluierungen rules/evaluation_count: Die Anzahl der Auswertungen von Realtime Database-Regeln, die als Reaktion auf Schreib- oder Leseanfragen ausgeführt werden. Sie können diesen Messwert nach dem Ergebnis der Anfrage aufschlüsseln (ALLOW, DENY oder ERROR).

Passen Sie das Cloud Monitoring-Diagramm für die Regelauswertung nach Bedarf an, indem Sie beispielsweise nach bestimmten Auswertungsergebnissen filtern: ALLOW, DENY oder ERROR. Das Einrichten und Anpassen von Diagrammen wird unter Datenbanknutzung überwachen beschrieben.

Vollständige Liste der Realtime Database-Messwerte, die über Cloud Monitoring verfügbar sind