Felsöka problem med avancerade diagnostikfrågor med Azure Cosmos DB för MongoDB
GÄLLER FÖR: NoSQL MongoDB Kassandra Gremlin
I den här artikeln går vi igenom hur du skriver mer avancerade frågor för att felsöka problem med ditt Azure Cosmos DB-konto med hjälp av diagnostikloggar som skickas till Azure Diagnostics-tabeller (äldre) och resursspecifika tabeller (förhandsversion ).
För Azure Diagnostics-tabeller skrivs alla data till en enda tabell. Användare anger vilken kategori de vill fråga efter. Om du vill visa frågan i fulltext i din begäran kan du läsa Övervaka Azure Cosmos DB-data med hjälp av diagnostikinställningar i Azure för att lära dig hur du aktiverar den här funktionen.
För resursspecifika tabeller skrivs data till enskilda tabeller för varje kategori av resursen. Vi rekommenderar det här läget eftersom det:
- Gör det mycket enklare att arbeta med data.
- Ger bättre identifiering av scheman.
- Förbättrar prestanda för både svarstid för inmatning och frågetider.
Vanliga frågor
Vanliga frågor visas i de resursspecifika tabellerna och Azure Diagnostics-tabellerna.
Översta N(10) begärandeenheten (RU) förbrukar begäranden eller frågor inom en viss tidsram
//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
Begäranden begränsades (statusCode = 429 eller 16500) i ett visst tidsfönster
CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "429" or ErrorCode == "16500"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated
Tidsgränsbegäranden (statusCode = 50) i ett visst tidsfönster
CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "50"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated
Frågor med stora svarslängder (nyttolaststorlek för serversvaret)
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-förbrukning efter fysisk partition (över alla repliker i replikuppsättningen)
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-förbrukning efter logisk partition (över alla repliker i replikuppsättningen)
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ästa steg
- Mer information om hur du skapar diagnostikinställningar för Azure Cosmos DB finns i Skapa diagnostikinställningar.
- Detaljerad information om hur du skapar en diagnostikinställning med hjälp av Azure-portalen, Azure CLI eller PowerShell finns i Skapa diagnostikinställningar för att samla in plattformsloggar och mått i Azure.