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.
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.
Das Cloud SQL-Systemstatistik-Dashboard berücksichtigt mehrere wichtige Signale zum Gesamtzustand und zur Leistung der Datenbank.
Das Dashboard enthält Grafiken für mehrere wichtige Messwerte, mit denen Sie Einblicke in Probleme etwa zu Durchsatz, Latenz und Kosten erhalten. Diese Erkenntnisse helfen Ihnen, proaktiv zu reagieren, wenn Ihre Anwendung eine Änderung erfordert. Sie können die aktuelle Leistung mit früheren Trends vergleichen und Anomalien identifizieren, die möglicherweise untersucht werden müssen.
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 Transaktions-ID-Auslastung | Optimieren Sie die Leistung Ihrer Instanz, indem Sie einen potenziellen Transaktions-ID-Wraparound für Cloud SQL for PostgreSQL-Instanzen vermeiden. |
Nächste Schritte
- Liste der Cloud SQL-Messwerte aufrufen.
- Abfragestatistiken verwenden, um die Abfrageleistung zu verbessern.
- Systemstatistiken zur Verbesserung der Instanzleistung verwenden.
- Sehen Sie sich das Video an: Introducing Cloud SQL Insights.
- Lesen Sie den Start-Blog: Database observability for developers: introducing Cloud SQL Insights.
- Blogeintrag lesen: Boost your query performance execution debug with Cloud SQL Insights
- Blog lesen: Enable query tagging with Sqlcommenter
- Weitere Informationen zu Cloud Logging und Cloud Monitoring. Siehe auch Instanzlogs aufrufen.
- Fehlerbehebung und Feinabstimmung der Datenbankinstanz.
- Weitere Informationen zu Google Cloud-Recommender.