Dela via


Felsöka problem med avancerade diagnostikfrågor med Azure Cosmos DB för Apache Gremlin

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

CDBGremlinRequests
| project PIICommandText, ActivityId, DatabaseName , CollectionName
| join kind=inner topRequestsByRUcharge on ActivityId
| project DatabaseName , CollectionName , PIICommandText , RequestCharge, TimeGenerated
| order by RequestCharge desc
| take 10

Begäranden begränsades (statusCode = 429) i ett specifikt tidsfönster

CDBGremlinRequests
| project PIICommandText, ActivityId, DatabaseName , CollectionName
| join kind=inner throttledRequests on ActivityId
| project DatabaseName , CollectionName , PIICommandText , OperationName, TimeGenerated

Frågor med stora svarslängder (nyttolaststorlek för serversvaret)

CDBGremlinRequests
//specify collection and database
 //| where DatabaseName == "DB NAME" and CollectionName == "COLLECTIONNAME"
| join kind=inner operationsbyUserAgent on ActivityId
| summarize max(ResponseLength) by PIICommandText
| 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