Beheben von Problemen mit erweiterten Diagnoseabfragen mit Azure Cosmos DB für MongoDB
GILT FÜR: NoSQL MongoDB Cassandra Gremlin
In diesem Artikel wird erläutert, wie Sie komplexere Abfragen schreiben, um mithilfe von Diagnoseprotokollen, die an Azure-Diagnose-Tabellen (Legacy) und ressourcenspezifische Tabellen (Vorschau) gesendet werden, Probleme bei Ihrem Azure Cosmos DB-Konto zu beheben.
Bei Azure-Diagnose-Tabellen werden alle Daten in eine einzige Tabelle geschrieben. Benutzer geben an, welche Kategorie sie abfragen möchten. Wenn Sie die Volltextabfrage Ihrer Anforderung anzeigen möchten, lesen Sie den Artikel Überwachen von Azure Cosmos DB-Daten mithilfe von Diagnoseeinstellungen in Azure. Darin erfahren Sie, wie Sie dieses Feature aktivieren können.
Bei ressourcenspezifischen Tabellen werden Daten in einzelne Tabellen für die jeweilige Kategorie der Ressource geschrieben. Wir empfehlen diesen Modus aus folgenden Gründen:
- Er vereinfacht die Arbeit mit den Daten erheblich.
- Er ermöglicht eine bessere Erkennbarkeit der Schemas.
- Er verbessert die Leistung sowohl im Hinblick auf Erfassungslatenz als auch auf Abfragezeiten.
Allgemeine Abfragen
Allgemeine Abfragen werden in den ressourcenspezifischen und Azure-Diagnose-Tabellen angezeigt.
Top N(10) Request Unit (RU), die Anforderungen oder Abfragen in einem bestimmten Zeitrahmen verbrauchen
//Enable full-text query to view entire query text
CDBMongoRequests
| where TimeGenerated > ago(24h)
| project PIICommandText, ActivityId, DatabaseName , CollectionName, RequestCharge
| order by RequestCharge desc
| take 10
Gedrosselte Anforderungen (statusCode = „429“ oder „16500“) in einem bestimmten Zeitfenster
CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "429" or ErrorCode == "16500"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated
Anforderungen mit Zeitüberschreitung (statusCode = „50“) in einem bestimmten Zeitfenster
CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "50"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated
Abfragen mit langer Antwort (Nutzdatengröße der Serverantwort)
CDBMongoRequests
//specify collection and database
//| where DatabaseName == "DB NAME" and CollectionName == "COLLECTIONNAME"
| summarize max(ResponseLength) by PIICommandText, RequestCharge, DurationMs, OperationName, TimeGenerated
| order by max_ResponseLength desc
RU-Verbrauch nach physischer Partition (für alle Replikate in der Replikatgruppe)
CDBPartitionKeyRUConsumption
| where TimeGenerated >= now(-1d)
//specify collection and database
//| where DatabaseName == "DB NAME" and CollectionName == "COLLECTIONNAME"
// filter by operation type
//| where operationType_s == 'Create'
| summarize sum(todouble(RequestCharge)) by toint(PartitionKeyRangeId)
| render columnchart
RU-Verbrauch nach logischer Partition (für alle Replikate in der Replikatgruppe)
CDBPartitionKeyRUConsumption
| where TimeGenerated >= now(-1d)
//specify collection and database
//| where DatabaseName == "DB NAME" and CollectionName == "COLLECTIONNAME"
// filter by operation type
//| where operationType_s == 'Create'
| summarize sum(todouble(RequestCharge)) by PartitionKey, PartitionKeyRangeId
| render columnchart
Nächste Schritte
- Weitere Informationen zum Erstellen von Diagnoseeinstellungen für Azure Cosmos DB finden Sie unter Erstellen von Diagnoseeinstellungen.
- Ausführliche Informationen zum Erstellen einer Diagnoseeinstellung über das Azure-Portal, die Azure CLI oder PowerShell finden Sie unter Erstellen von Diagnoseeinstellungen zum Sammeln von Plattformprotokollen und Metriken in Azure.