Delen via


Problemen oplossen met geavanceerde diagnostische query's met Azure Cosmos DB voor MongoDB

VAN TOEPASSING OP: NoSQL MongoDB Cassandra Gremlin

In dit artikel wordt beschreven hoe u geavanceerdere query's schrijft om problemen met uw Azure Cosmos DB-account op te lossen met behulp van diagnostische logboeken die worden verzonden naar Azure Diagnostics-tabellen (verouderd) en resourcespecifieke tabellen (preview).

Voor Azure Diagnostics-tabellen worden alle gegevens in één tabel geschreven. Gebruikers geven op welke categorie ze een query willen uitvoeren. Als u de volledige-tekstquery van uw aanvraag wilt bekijken, raadpleegt u Azure Cosmos DB-gegevens bewaken met behulp van diagnostische instellingen in Azure voor meer informatie over het inschakelen van deze functie.

Voor resourcespecifieke tabellen worden gegevens voor elke categorie van de resource in afzonderlijke tabellen geschreven. We raden deze modus aan omdat deze:

  • Maakt het veel eenvoudiger om met de gegevens te werken.
  • Biedt een betere zichtbaarheid van de schema's.
  • Verbetert de prestaties voor zowel opnamelatentie als querytijden.

Algemene query's

Algemene query's worden weergegeven in de resourcespecifieke en Diagnostische azure-tabellen.

Belangrijkste N(10) Aanvraageenheid (RU) die aanvragen of query's in een bepaald tijdsbestek verbruiken

//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

Aanvragen beperkt (statusCode = 429 of 16500) in een bepaald tijdvenster

CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "429" or ErrorCode == "16500"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated

Time-outaanvragen (statusCode = 50) in een specifiek tijdvenster

CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "50"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated

Query's met een grote antwoordlengte (nettoladinggrootte van het serverantwoord)

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-verbruik per fysieke partitie (voor alle replica's in de replicaset)

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-verbruik per logische partitie (voor alle replica's in de replicaset)

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  

Volgende stappen