Beobachtbarkeit der Datenbank

Die Beobachtbarkeit der Datenbank ist ein Maß dafür, wie genau Sie den internen Zustand eines Datenbanksystems anhand der Daten oder Telemetriedaten ableiten können, die in Logs, Messwerten und Traces generiert werden.

Die Diagnose und Fehlerbehebung von Problemen in einer Anwendung kann besonders schwierig und zeitaufwendig sein, wenn eine Datenbank beteiligt ist. Die Telemetrieerfassung ist entscheidend. Durch Telemetrie, die mit dem Anwendungskontext angereichert wird, können Datenbankinstanzen verständlicher, beobachtbarer und leichter zu pflegen sein. Sie können Probleme und problematische Trends leicht erkennen und frühzeitig beheben, ohne dass teure Ausfallzeiten entstehen. Darüber hinaus können Sie mithilfe solcher Daten neuere Datenbankinstanzen konfigurieren, um die richtige Art von Daten ab dem Instanzstart zu erfassen.

Sie können Daten effektiv und proaktiv verwenden, um Probleme zu vermeiden und sich auf strategische Innovationen zu konzentrieren. Eine gute Telemetrieerfassung ist besonders beim DevOps-Modell nützlich, bei dem Datenbankexperten die Telemetrie unabhängig analysieren müssen, um die Leistung und den Zustand von sich schnell entwickelnden Anwendungen zu beobachten, zu bewerten und zu optimieren.

Google Cloud bietet mehrere leistungsstarke Features, die sich über die vier Phasen der iterativen Beobachtbarkeit erstrecken, um den Zustand Ihrer Cloud SQL-Datenbank aufrechtzuerhalten.

Grafik: Die iterativen Phasen der Implementierung der Beobachtbarkeit

Automatisierte Telemetrieerfassung

Um Beobachtbarkeitsziele zu erreichen, erfassen wir zuerst Telemetrie, vorzugsweise über einen automatisierten Prozess. Wenn Telemetrie über einen bestimmten Zeitraum erfasst wird, kann eine Referenz für Messwerte unter verschiedenen Lastbedingungen erstellt werden.

Google Cloud-Dienste generieren automatisch Beobachtbarkeitsdaten, einschließlich Messwerten, Logs und Traces, die eine vollständige Beobachtbarkeitsübersicht bieten.

  • Cloud Monitoring erfasst Messungen Ihres Dienstes und der von Ihnen verwendeten Google Cloud-Ressourcen. Cloud SQL verwendet integrierte benutzerdefinierte Agents zum Erfassen von Abfragetelemetrie, was die Leistung weniger beeinträchtigt und den Agent-Wartungsaufwand oder den Sicherheitsaufwand beseitigt.

  • Cloud Logging erfasst Logging-Daten von gängigen Anwendungskomponenten. Für Cloud SQL siehe auch Instanzlogs ansehen.

  • Cloud Trace erfasst Latenzdaten und ausgeführte Abfragepläne aus Anwendungen, damit Sie verfolgen können, wie Anfragen Ihre Anwendung durchlaufen. Sie können diese Latenzverteilungen im Zeitverlauf oder nach Version vergleichen. Cloud Trace benachrichtigt Sie, wenn es eine erhebliche Verschiebung im Latenzprofil Ihrer Anwendung gibt, wenn es für die Verwendung von Cloud Trace instrumentiert ist.

Mit Sqlcommenter, einer OpenTelemetry-Bibliothek für Datenbanken, können Sie Ihre Datenbanken aus der Sicht einer Anwendung überwachen. Sqlcommenter instrumentiert ORMs automatisch, um SQL-Anweisungen mit Tags zu erweitern. Außerdem kann OpenTelemetry-Trace-Kontextinformationen an die Datenbank weitergegeben werden.

Mit Tags und dem Kontext von Trace-Anwendungen in Datenbanken ist es einfach, den Anwendungscode mit der Datenbankleistung zu korrelieren und Fehler in auf Mikrodiensten basierenden Architekturen zu beheben.

Datenbankmonitoring

Mithilfe des richtigen Monitorings können Sie feststellen, ob Ihre Anwendung optimal funktioniert. Implementieren Sie das Monitoringsystem frühzeitig, z. B. bevor Sie eine Migration starten oder bevor Sie eine neue Anwendung in einer Produktionsumgebung bereitstellen. Unterscheiden Sie zwischen Anwendungsproblemen und zugrunde liegenden Cloud-Problemen.

Auf der Übersichtsseite von Cloud SQL werden Diagramme für einige der wichtigsten Messwerte angezeigt.

Mit Cloud SQL können Sie auch Messwerte für ausgewählte Instanzen vergleichen.

Mit Cloud Monitoring können Sie benutzerdefinierte Dashboards erstellen, um Messwerte zu überwachen und Benachrichtigungsrichtlinien einzurichten, damit Sie zeitnahe Benachrichtigungen erhalten.

Datenbankanpassung

Sie können Fehler iterativ beheben und Ihre Datenbank optimieren.

Cloud SQL-Recommender unterstützen Sie bei der Analyse der aktuellen Nutzung Ihrer Datenbank und liefern Empfehlungen sowie Statistiken anhand von heuristischen Methoden und maschinellem Lernen.

Cloud SQL-Recommender werden im Folgenden kurz beschrieben:

Name Beschreibung
Out-of-Disk-Recommender Reduzieren Sie das Risiko von Ausfallzeiten, die durch Cloud SQL-Instanzen aufgrund fehlenden Speicherplatzs verursacht werden können.
Recommender für inaktive Instanz Reduzieren Sie die Kosten, indem Sie Cloud SQL-Instanzen herunterfahren, die unbeabsichtigt ausgeführt werden.
Recommender für überdimensionierte Instanzen Verringern Sie die Kosten, indem Sie die Größe von Cloud SQL-Instanzen anpassen, die für eine bestimmte Arbeitslast unnötig groß sind.
Recommender für unterdimensionierte Instanzen Vermeiden Sie Engpässe bei hoher CPU- und Arbeitsspeichernutzung und minimieren Sie die Wahrscheinlichkeit von Ereignissen mit unzureichendem Arbeitsspeicher, indem Sie die Größe von Cloud SQL-Instanzen mit hoher CPU- und/oder Arbeitsspeichernutzung anpassen.

Nächste Schritte