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.

Datenbank- und Abfrageanalyse

Das Cloud SQL-Tool Query Insights bietet Monitoring und Diagnosen, mit denen Sie Leistungsprobleme bei Abfragen erkennen und beheben können.

Mit Query Insights-Dashboards können Sie Probleme bei der Abfrageleistung frühzeitig erkennen und von der Erkennung zur Auflösung über eine einzige Oberfläche übergehen. Integrierte visuelle Abfragepläne unterstützen Sie bei der Behebung von Problemen und dem Finden der Ursache. Sie können auch das kontextbezogene End-to-End-Anwendungs-Tracing verwenden, um die Quelle einer problematischen Abfrage zu ermitteln.

Darüber hinaus bietet Query Insights ein anwendungsorientiertes Monitoring, mit dem Sie Leistungsprobleme für Anwendungen diagnostizieren können, die mit objektrelationalen Zuordnungen (ORMs) erstellt wurden. Sie können Abfragen mit Geschäftslogik taggen, die mit der Abfrage verknüpft ist, z. B. in Bezug auf Zahlung, Inventar, Geschäftsanalyse oder Versand. Query Insights lässt sich in Ihre bestehenden APM-Tools integrieren, sodass Sie Abfrageprobleme mit Ihrem bevorzugten Tool überwachen und beheben können.

Das Query Insights-Tool verwendet sqlcommenter zur automatischen Instrumentierung Ihrer ORMs. Mit dieser Instrumentierung können Sie den Anwendungscode identifizieren, der Probleme verursacht. Query Insights unterstützt OpenTelemetry und stellt die Abfragemesswerte und Trace-Daten für Ihre APM-Tools über die API Google Cloud Observability verwenden.

Query Insights ist in Cloud Monitoring eingebunden. Damit können Sie benutzerdefinierte Dashboards und Benachrichtigungen zu Abfragemesswerten oder Tags erstellen und Benachrichtigungen über E-Mail, SMS, Slack, PagerDuty und andere Dienste empfangen.

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.
Recommender für hohe Anzahl von offenen Tabellen Optimieren Sie die Leistung der Instanz, indem Sie die Größe des Cache offener Tabellen für die Cloud SQL-Instanzen erhöhen, bei denen die Anzahl der offenen Tabellen dem Cache offener Tabellen entspricht, und öffnen Sie weiterhin zu viele Tabellen gleichzeitig.
Hohe Anzahl von Tabellen-Recommender Optimieren Sie die Leistung der Instanz, indem Sie die Anzahl der Tabellen für die Cloud SQL-Instanzen reduzieren, deren Tabellenanzahl zu hoch ist und nahe dem SLA-Limit liegt.

Nächste Schritte