Überwachen von Azure SQL-Datenbank mit Metriken und Warnungen
Gilt für: Azure SQL-Datenbank
Sie können Azure Monitor-Metriken verwenden, um den Ressourcenverbrauch und die Integrität von Datenbanken und elastischen Poolressourcen zu überwachen. Sie können Warnungen verwenden, um Benachrichtigungen zu senden, wenn Metrikwerte auf ein potenzielles Problem hinweisen.
Metriken
Eine Metrik ist eine Reihe numerischer Werte, die in regelmäßigen Zeitintervallen gemessen werden, häufig mit Einheiten wie count
, percent
, bytes
usw. Abhängig von der Art der Metrik können Sie Aggregationen wie total
, count
, average
, minimum
und maximum
verwenden, um Metrikwerte über eine gewisse Zeit zu berechnen. Sie können einige Metriken nach Dimensionen aufteilen. Jede Dimension stellt einen zusätzlichen Kontext für die numerischen Werte bereit.
Beispiele für verfügbare Azure SQL-Datenbank Metriken sind: CPU percentage
, Data space used
, Deadlocks
und Tempdb Percent Log Used
.
Sehen Sie sich Datenbankmetriken und elastische Pool-Metriken für alle verfügbaren Metriken in Azure SQL-Datenbank an.
Hinweis
Einige Metriken gelten nur für bestimmte Arten von Datenbanken oder elastischen Pools. Die Beschreibung jeder Metrik erwähnt, wenn sie auf eine bestimmte Datenbank oder einen flexiblen Pooltyp beschränkt ist, z. B. virtuelle Kerne, Hyperscale, serverlos usw.
Im Azure SQL-Datenbank-Portal werden mehrere häufig verwendete Metriken auf der Registerkarte Überwachung auf der Seite Übersicht dargestellt. Mit den Metriken können Sie den Ressourcenverbrauch und die Integrität einer Datenbank oder eines elastischen Pools auf einen Blick bewerten.
Wählen Sie unter Schlüsselmetriken die Option Alle Metriken anzeigen oder eine beliebige Stelle im Diagramm aus, um den Metrik-Explorer zu öffnen. Auf der Seite Metriken können Sie alle anderen verfügbaren Metriken für die Datenbank- oder elastische Poolressource einsehen. Im Metrik-Explorer können Sie den Zeitraum, die Granularität und den Aggregationstyp für das Diagramm ändern, den Diagrammtyp ändern, den Bereich erweitern, um Metriken aus anderen Azure-Ressourcen einzuschließen, Warnungsregeln zu erstellen usw. Sie können den Metrik-Explorer auch durch Auswählen des Menüelements Metriken unter Überwachung im Ressourcenmenü öffnen.
Verwenden von Metriken zum Überwachen von Datenbanken und elastischen Pools
Sie können Metriken verwenden, um den Ressourcenverbrauch und die Integrität der Datenbank und des elastischen Pools zu überwachen. Sie können zum Beispiel Folgendes:
- Wählen Sie die richtige Größe der Datenbank oder des elastischen Pools für Ihre Anwendungsworkloads
- Erkennen eines graduellen Anstiegs des Ressourcenverbrauchs und proaktives Skalieren der Datenbank oder des elastischen Pools
- Erkennen und Behandeln von Leistungsproblemen
In der folgenden Tabelle werden häufig verwendete Metriken in Azure SQL-Datenbank beschrieben.
Metrikname | Metrik-ID | Beschreibung |
---|---|---|
CPU-Prozentsatz | cpu_percent |
Diese Metrik zeigt den CPU-Verbrauch gegenüber dem Grenzwert der Benutzerauslastung einer Datenbank oder eines elastischen Pools an, ausgedrückt als Prozentsatz. Weitere Informationen finden Sie unter Ressourcenverbrauch durch Benutzerworkloads und interne Prozesse. |
CPU-Prozentsatz der SQL-Instanz | sql_instance_cpu_percent |
Diese Metrik zeigt den gesamten CPU-Verbrauch der Benutzer- und Systemworkloads an, ausgedrückt als Prozentsatz. Da diese Metrik und die CPU-Prozentmetrik auf unterschiedlichen Skalierungen gemessen werden, sind sie nicht direkt miteinander vergleichbar. Weitere Informationen finden Sie unter Ressourcenverbrauch durch Benutzerworkloads und interne Prozesse. |
E/A-Prozentsatz für Daten | physical_data_read_percent |
Diese Metrik zeigt die Datendatei-E/A-Auslastung gegenüber dem Grenzwert für die Benutzerauslastung einer Datenbank oder eines elastischen Pools, ausgedrückt als Prozentsatz. Weitere Informationen finden Sie unter Daten-E/A-Governance. |
E/A-Prozentsatz für Protokoll | log_write_percent |
Diese Metrik zeigt den Transaktionsprotokoll-Schreibdurchsatzverbrauch in Richtung der Benutzerauslastungsgrenze einer Datenbank oder eines elastischen Pools an, ausgedrückt als Prozentsatz. Weitere Informationen finden Sie unter Transaktionsprotokoll Tarif-Governance. |
Worker in Prozent | workers_percent |
Diese Metrik zeigt den Verbrauch von Worker-Threads in Richtung der Benutzerauslastungsgrenze einer Datenbank oder eines elastischen Pools, ausgedrückt als Prozentsatz. |
DTU-Prozentsatz | dtu_consumption_percent |
Diese Metrik zeigt den DTU-Verbrauch gegenüber dem Grenzwert für die Benutzerauslastung einer Datenbank oder eines elastischen Pools, ausgedrückt als Prozentsatz. Der DTU-Prozentsatz wird von drei anderen Metriken abgeleitet: CPU-Prozentsatz, Daten-E/A-Prozent und Protokoll-E/A-Prozent. Zu jedem Zeitpunkt entspricht der DTU-Prozentsatz dem höchsten Wert dieser drei Metriken. |
Verwendete CPU | cpu_used |
Diese Metrik zeigt den CPU-Verbrauch gegenüber dem Grenzwert der Benutzerauslastung einer Datenbank oder eines elastischen Pools an, ausgedrückt als die Anzahl der virtuellen Kerne. Für weitere Informationen siehe Diagnostizieren und Behandeln von Problemen mit hoher CPU-Auslastung in Azure SQL-Datenbank. |
DTU-Verbrauch | dtu_used |
Diese Metrik zeigt die Anzahl der DTUs, die von einer Datenbank oder einem elastischen Pool verwendet werden. |
Abgerechnete App-CPU | app_cpu_billed |
Bei serverlosen Datenbanken zeigt diese Metrik die in Sekunden virtueller Kerne ausgedrückte Berechnungsmenge (CPU und Arbeitsspeicher) an. Weitere Informationen finden Sie unter Abrechnung auf der serverlosen Computeebene. |
App-CPU-Prozentsatz | app_cpu_percent |
Bei serverlosen Datenbanken zeigt diese Metrik den CPU-Verbrauch gegenüber dem maximalen Grenzwert virtueller Kerne des App-Pakets an, ausgedrückt als Prozentsatz. Weitere Informationen finden Sie unter Monitoring in der serverlosen Computeebene. |
App-Arbeitsspeicherprozentsatz | app_memory_percent |
Bei serverlosen Datenbanken zeigt diese Metrik den Speicherverbrauch im Hinblick auf die maximale Speichergrenze des App-Pakets an, ausgedrückt als Prozentsatz. Weitere Informationen finden Sie unter Monitoring in der serverlosen Computeebene. |
Sitzungsanzahl | sessions_count |
Diese Metrik zeigt die Anzahl der etablierten Benutzersitzungen für eine Datenbank oder einen elastischen Pool an. |
Genutzter Speicherplatz | storage |
Bei Datenbanken zeigt diese Metrik den Speicherplatz an, der in den Datendateien einer Datenbank verwendet wird. |
Genutzter Speicherplatz | storage_used |
Bei elastischen Pools zeigt diese Metrik die Menge an Speicherplatz an, der in den Datendateien aller Datenbanken in einem elastischen Pool verwendet wird. |
Zugeordneter Datenspeicherplatz | allocated_data_storage |
Diese Metrik zeigt die Menge des Speicherplatzes an, der von den Datendateien einer Datenbank oder von den Datendateien aller Datenbanken in einem elastischen Pool belegt wird. Datendateien können leeren Speicherplatz enthalten. Aus diesem Grund werden Datenplätze zugewiesen, wenn häufig höher als der für die gleiche Datenbank oder den gleichen elastischen Pool verwendete Datenraum. Weitere Informationen finden Sie unter Verwalten von Dateispeicherplatz für Datenbanken in Azure SQL-Datenbank. |
Genutzter Datenspeicherplatz in Prozent | storage_percent |
Bei Datenbanken zeigt diese Metrik die Menge an Speicherplatz an, der in den Datendateien einer Datenbank in Richtung der Datengrößesgrenze einer Datenbank verwendet wird. Bei elastischen Pools zeigt sie die Menge an Speicherplatz an, der in den Datendateien aller Datenbanken in einem elastischen Pool verwendet wird, ausgedrückt als Prozentsatz gegenüber der Datengrößesgrenze eines elastischen Pools. Der Grenzwert für die Datengröße für eine Datenbank oder einen elastischen Pool kann niedriger als die maximale Datengrößesgrenze konfiguriert werden. Informationen zum Ermitteln des maximalen Grenzwerts für die Datengröße finden Sie unter Ressourcengrenzwerte für vCore-Datenbanken, vCore-elastische Pools, DTU-Datenbanken und DTU-Elastizitätspools. |
Zugeordneter Datenspeicherplatz in Prozent | allocated_data_storage_percent |
Bei elastischen Pools zeigt diese Metrik die Menge des Speicherplatzes an, der von den Datendateien aller Datenbanken in einem elastischen Pool in Richtung der Datengrößengrenze des Pools belegt wird, ausgedrückt als Prozentsatz. |
Nutzung des tempdb-Protokolls in Prozent | tempdb_log_used_percent |
Diese Metrik zeigt den Verbrauch des Transaktionsprotokollbereichs in der tempdb -Datenbank in Richtung der maximalen Protokollgröße an, ausgedrückt als Prozentsatz. Weitere Informationen finden Sie unter tempdb in Azure SQL Database. |
Erfolgreiche Verbindungen | connection_successful |
Diese Metrik zeigt die Anzahl der erfolgreich hergestellten Verbindungen mit einer Datenbank an. Diese Metrik kann durch zwei Dimensionen aufgeteilt werden, SslProtocol und ValidatedDriverNameAndVersion , um die Anzahl der Verbindungen mithilfe einer bestimmten Verschlüsselungsprotokollversion oder mithilfe eines bestimmten Client-Treibers anzuzeigen. |
Fehlgeschlagene Verbindungen: System-Fehler | connection_failed |
Diese Metrik zeigt die Anzahl der Verbindungsversuche mit einer Datenbank an, die aufgrund interner Dienstfehler fehlgeschlagen ist. Meistens sind solche Fehler von kurzer Dauer. Diese Metrik kann durch zwei Dimensionen aufgeteilt werden, Error und ValidatedDriverNameAndVersion , um die Anzahl der fehlgeschlagenen Verbindungsversuche aufgrund eines bestimmten Fehlers oder eines bestimmten Clienttreibers anzuzeigen. |
Fehlgeschlagene Verbindungen: Benutzer-Fehler | connection_failed_user_error |
Diese Metrik zeigt die Anzahl der Verbindungsversuche mit einer Datenbank an, die aufgrund von Fehlern des Benutzers fehlgeschlagen sind, z. B. ein falsches Kennwort oder eine Verbindung, die von der Firewall blockiert wurde. Diese Metrik kann durch zwei Dimensionen aufgeteilt werden, Error und ValidatedDriverNameAndVersion , um die Anzahl der fehlgeschlagenen Verbindungsversuche aufgrund eines bestimmten Fehlers oder eines bestimmten Clienttreibers anzuzeigen. |
Deadlocks | deadlock |
Diese Metrik zeigt die Anzahl der Deadlocks in einer Datenbank an. |
Verfügbarkeit | availability |
Die Verfügbarkeit wird basierend auf der Datenbank bestimmt, die für Verbindungen betriebsbereit ist. Für jeden einminütigen Datenpunkt sind die möglichen Werte entweder 100% oder 0% . Weitere Informationen finden Sie unter Verfügbarkeitsmetrik. |
Verfügbarkeitsmetrik
Die Verfügbarkeitsmetrik verfolgt die Verfügbarkeit auf einer einzelnen Azure SQL-Datenbankebene. Diese Funktion befindet sich derzeit in der Vorschau.
Die Verfügbarkeit ist präzise bis zu einer Minute des Verbindungsausfalls. Die Verfügbarkeit wird basierend auf der Datenbank bestimmt, die für Verbindungen betriebsbereit ist. Eine Minute gilt als Downtime oder nicht verfügbar, wenn alle fortlaufenden Versuche der Benutzer, eine Verbindung zur Datenbank herzustellen, innerhalb einer Minute aufgrund eines Dienstproblems fehlschlagen. Wenn die Verfügbarkeit zeitweilig nicht gegeben ist, muss die Dauer der kontinuierlichen Nichtverfügbarkeit die Minutengrenze überschreiten, um als Downtime betrachtet zu werden. In der Regel beträgt die Latenz zur Anzeige der Verfügbarkeit weniger als drei Minuten.
Dies ist die Logik, die für die Berechnung der Verfügbarkeit für jedes Intervall mit einer Minute verwendet wird:
- Wenn mindestens eine erfolgreiche Verbindung besteht, beträgt die Verfügbarkeit 100 %.
- Wenn alle Verbindungen aufgrund von Benutzerfehlern fehlschlagen, beträgt die Verfügbarkeit 100 %.
- Wenn keine Verbindungsversuche vorhanden sind, beträgt die Verfügbarkeit 100 %.
- Wenn alle Verbindungen aufgrund von Systemfehlern fehlschlagen, beträgt die Verfügbarkeit 0 %.
- Derzeit werden die Verfügbarkeitsmetrikdaten für die serverlose Computeebene noch nicht unterstützt und als 100 % angezeigt.
Die Verfügbarkeitsmetrik ist daher eine zusammengesetzte Metrik, die aus den folgenden vorhandenen Metriken abgeleitet wird:
- Erfolgreiche Verbindungen
- Fehlgeschlagene Verbindungen: Benutzer-Fehler
- Von der Firewall blockiert
- Fehlgeschlagene Verbindungen: System-Fehler
Benutzerfehler umfassen alle Verbindungen, die aufgrund von Benutzerkonfiguration, Workload oder Verwaltung fehlschlagen. Systemfehler umfassen alle Verbindungen, die aufgrund vorübergehender Probleme im Zusammenhang mit dem Azure SQL-Datenbankdienst fehlschlagen.
Beispiele für Fehler, die durch die Benutzerkonfiguration verursacht werden:
Beispiele für Fehler, die durch den Benutzerworkload verursacht werden:
Beispiele für Fehler, die durch die Benutzerverwaltung verursacht werden:
- Hochskalieren oder Herunterskalieren der Datenbank oder des elastischen Pools
- Geplantes oder ungeplantes Failover für die Georeplikation
- Geplantes oder ungeplantes Failover der Failovergruppe
- Geo-Sekundärdatenbank im Seedingstatus
- Datenbank, die den Zustand aufgrund von Zeitpunktwiederherstellung (PITR, Point In Time Restore), Long Term Restore (LTR) oder Wiederherstellung aus einer gelöschten Datenbank wiederherstellen
- Datenbank, die noch nicht kopiert wurde (Datenbankkopie)
Alerts
Sie können Warnungsregeln erstellen, damit Sie darüber informiert werden, dass der Wert einer Metrik oder mehrerer Metriken außerhalb eines erwarteten Bereichs liegt.
Sie können den Umfang einer Warnungsregel auf mehrere Arten entsprechend Ihren Anforderungen festlegen. Beispielsweise kann der Bereich für Warnungsregel auf Folgendes festgelegt werden:
- Eine Einzeldatenbank
- Ein elastischer Poo
- Alle Datenbanken oder elastischen Pools in einer Ressourcengruppe
- Alle Datenbanken oder elastischen Pools in einem Abonnement innerhalb einer Azure-Region
- Alle Datenbanken oder elastischen Pools in einem Abonnement in allen Regionen
Warnungsregeln bewerten regelmäßig aggregierte Metrikwerte über eine Nachschlageperiode und vergleichen sie mit einem Schwellenwert. Sie können den Schwellenwert, die Auswertungshäufigkeit und den Nachschlagezeitraum konfigurieren.
Wenn eine Warnungsregel ausgelöst wird, werden Sie gemäß Ihren Benachrichtigungseinstellungen benachrichtigt, die Sie in der Aktionsgruppe angeben, die mit der Warnungsregel verknüpft ist. Sie können z. B. eine E-Mail, eine SMS oder eine Sprachbenachrichtigung erhalten. Eine Warnungsregel kann auch Aktionen wie Webhooks, Automatisierungsrunbooks, Funktionen, Logik-Apps usw. auslösen. Sie können Warnungen in unterstützte IT-Dienstverwaltungsprodukte integrieren .
Weitere Informationen zu Azure Monitor-Warnungen finden sie unter Azure Monitor-Warnungsübersicht. Um sich mit metrischen Warnungen vertraut zu machen, lesen Sie Metrische Warnungen, Verwalten von Warnungsregeln und Aktionsgruppen.
Empfohlene Warnungsregeln
Die Metriken und die optimalen Schwellenwerte für die Verwendung in Warnungsregeln variieren im breiten Spektrum der Kundenworkloads in Azure SQL-Datenbank.
Die empfohlenen Warnungen in der folgenden Tabelle sind ein Ausgangspunkt, mit dem Sie die optimale Warnungskonfiguration für Ihre Azure SQL-Datenbank-Ressourcen definieren können. Je nach Ihren Anforderungen kann sich Ihre Konfiguration von diesem Beispiel unterscheiden. Sie können unterschiedliche Schwellenwerte, Auswertungsfrequenzen oder Nachschlageperioden verwenden. Sie können zusätzliche Warnungen erstellen oder unterschiedliche Konfigurationen für Warnungsregelen für verschiedene Anwendungen und Umgebungen verwenden.
Hier sind Beispiele für typische Warnungsregelkonfigurationen.
Name der Warnungsregel | Metrik (Signal) | Warnungslogik | Zeitpunkt der Auswertung | Vorgeschlagener Schweregrad |
---|---|---|---|---|
Hohe Benutzer-CPU-Auslastung | CPU-Prozentsatz | Schwellenwert: Static Aggregation: Average Operator: Greater than Schwellenwert: 90 |
Überprüfen Sie alle: 1 minute Nachschlageperiode: 10 minutes |
2: Warnung |
Hohe CPU-Auslastung insgesamt | CPU-Prozentsatz der SQL-Instanz | Schwellenwert: Static Aggregation: Average Operator: Greater than Schwellenwert: 90 |
Überprüfen Sie alle: 1 minute Nachschlageperiode: 10 minutes |
2: Warnung |
Hohe Worker-Auslastung | Worker in Prozent | Schwellenwert: Static Aggregation: Minimum Operator: Greater than Schwellenwert: 60 |
Überprüfen Sie alle: 1 minute Nachschlageperiode: 5 minutes |
1: Fehler |
Hoher E/A-Datenverbrauch | E/A-Prozentsatz für Daten | Schwellenwert: Static Aggregation: Average Operator: Greater than Schwellenwert: 90 |
Überprüfen Sie alle: 1 minute Nachschlageperiode: 15 minutes |
3: Informativ |
Geringer Datenraum | Genutzter Datenspeicherplatz in Prozent | Schwellenwert: Static Aggregation: Minimum Operator: Greater than Schwellenwert: 95 |
Überprüfen Sie alle: 15 minute Nachschlageperiode: 15 minutes |
1: Fehler |
Geringer tempdb -Protokollraum |
Nutzung des tempdb-Protokolls in Prozent | Schwellenwert: Static Aggregation: Minimum Operator: Greater than Schwellenwert: 60 |
Überprüfen Sie alle: 1 minute Nachschlageperiode: 5 minutes |
1: Fehler |
Deadlocks | Deadlocks | Schwellenwert: Dynamic Aggregation: Total Operator: Greater than Schwellenwertempfindlichkeit: Medium |
Überprüfen Sie alle: 15 minutes Nachschlageperiode: 1 hour |
3: Informativ |
Fehlgeschlagene Verbindungen (Benutzer-Fehler) | Fehlgeschlagene Verbindungen: Benutzer-Fehler | Schwellenwert: Dynamic Aggregation: Total Operator: Greater than Schwellenwertempfindlichkeit: Medium |
Überprüfen Sie alle: 5 minutes Nachschlageperiode: 15 minutes |
2: Warnung |
Fehlgeschlagene Verbindungen (System-Fehler) | Fehlgeschlagene Verbindungen: System-Fehler | Schwellenwert: Static Aggregation: Total Operator: Greater than Einheit: Count Schwellenwert: 10 |
Überprüfen Sie alle: 1 minute Nachschlageperiode: 5 minutes |
2: Warnung |
Anomale Verbindungsrate | Erfolgreiche Verbindungen | Schwellenwert: Dynamic Aggregation: Total Operator: Greater or Less than Schwellenwertempfindlichkeit: Low |
Überprüfen Sie alle: 5 minutes Nachschlageperiode: 15 minutes |
2: Warnung |
Einige der empfohlenen Warnungsregeln verwenden dynamische Schwellenwerte, um anomale Metrikmuster zu erkennen, die möglicherweise Aufmerksamkeit erfordern. Warnungsregeln, die auf dynamischen Schwellenwerten basieren, werden erst ausgelöst, wenn ausreichende historische Daten gesammelt wurden, um normale Muster festzulegen. Für weitere Informationen siehe Dynamische Schwellenwerte in Metrikwarnungen.
Metrikwarnungen sind standardmäßig zustandsbehaftet. Dies bedeutet, dass die Warnung nur einmal ausgelöst wird, sobald eine Warnungsregel ausgelöst wird. Die Warnung wird in dem fired
-Zustand erneut Standard, bis sie aufgelöst wird. Zu diesem Zeitpunkt wird eine resolved
Benachrichtigung gesendet. Eine Warnungsregel löst eine neue Warnung nur aus, wenn die vorherige Warnung aufgelöst wurde. Zustandsbehaftete Warnungen vermeiden häufige Benachrichtigungen über einen fortlaufenden Zustand. Weitere Informationen zu zustands- und zustandslosen Warnungen finden Sie unter Warnungen und Zustand.
Zugehöriger Inhalt
- Überblick über Metriken in Azure Monitor
- Überwachen von Azure SQL-Workloads mit Datenbankwatcher (Vorschau)
- Analysieren von Metriken mit dem Azure Monitor-Metrik-Explorer
- Erläuterungen zur Azure Monitor-Metrikaggregation und -anzeige
- Übersicht über Azure Monitor-Warnungen
- Tutorial: Erstellen einer Metrikwarnung für eine Azure-Ressource
- Best Practices für Azure Monitor-Benachrichtigungen
- Behandeln von Problemen bei Azure Monitor-Warnungen
- Überwachung und Leistungsoptimierung in Azure SQL-Datenbank und Azure SQL Managed Instance
- Konfigurieren des Streamingexports von Diagnosetelemetrie aus Azure SQL Database und SQL Managed Instance