Partager via


Résoudre les problèmes liés aux requêtes de diagnostic avancées avec Azure Cosmos DB for Apache Gremlin

S’APPLIQUE À : NoSQL MongoDB Cassandra Gremlin

Dans cet article, nous allons voir comment écrire des requêtes plus avancées pour vous aider à résoudre les problèmes de votre compte Azure Cosmos DB en utilisant les journaux de diagnostic envoyés aux tables Diagnostics Azure (hérité) et spécifiques aux ressources.

Pour les tables Diagnostics Azure, toutes les données sont écrites dans une seule table. Les utilisateurs spécifient la catégorie qu’ils veulent interroger. Si vous souhaitez voir la requête de texte intégral de votre requête, consultez Superviser les données Azure Cosmos DB en utilisant des paramètres de diagnostic dans Azure pour savoir comment activer cette fonctionnalité.

Pour les tables spécifiques aux ressources, les données sont écrites dans des tables individuelles pour chaque catégorie de la ressource. Nous recommandons ce mode parce qu’il :

  • Facilite beaucoup l’utilisation des données
  • Offre une meilleure découvrabilité des schémas
  • Améliore les performances au niveau de la latence d’ingestion et des délais de requêtes

Requêtes courantes

Les requêtes courantes sont affichées dans les tables spécifiques aux ressources et Diagnostics Azure.

N(10) premières unités de requête (RU) consommant des requêtes ou des demandes dans un laps de temps spécifique

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

Requêtes limitées (statusCode = 429) dans une fenêtre de temps spécifique

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

Requêtes avec réponse longue (taille de charge utile de la réponse du serveur)

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

Consommation de RU par partition physique (sur tous les réplicas du jeu de réplicas)

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

Consommation de RU par partition logique (sur tous les réplicas du jeu de réplicas)

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  

Étapes suivantes