Risolvere i problemi relativi alle query di diagnostica avanzate con Azure Cosmos DB per Apache Gremlin
SI APPLICA A: Nosql Mongodb Cassandra Gremlin
In questo articolo verrà illustrato come scrivere query più avanzate per risolvere i problemi relativi all'account Azure Cosmos DB usando i log di diagnostica inviati alle tabelle Diagnostica di Azure (legacy) e specifiche delle risorse (anteprima).
Per Diagnostica di Azure tabelle, tutti i dati vengono scritti in una singola tabella. Gli utenti specificano la categoria su cui si vuole eseguire una query. Per visualizzare la query full-text della richiesta, vedere Monitorare i dati di Azure Cosmos DB usando le impostazioni di diagnostica in Azure per informazioni su come abilitare questa funzionalità.
Per le tabelle specifiche delle risorse, i dati sono scritti in singole tabelle per ogni categoria della risorsa. È consigliabile usare questa modalità perché:
- Semplifica notevolmente l'uso dei dati.
- Offre una migliore individuabilità degli schemi.
- Migliora le prestazioni sia nella latenza di inserimento che nei tempi di query.
Query comuni
Le query comuni vengono visualizzate nelle tabelle specifiche della risorsa e Diagnostica di Azure.
Top N(10) Request Unit (UR) che utilizza richieste o query in un intervallo di tempo specifico
CDBGremlinRequests
| project PIICommandText, ActivityId, DatabaseName , CollectionName
| join kind=inner topRequestsByRUcharge on ActivityId
| project DatabaseName , CollectionName , PIICommandText , RequestCharge, TimeGenerated
| order by RequestCharge desc
| take 10
Richieste limitate (statusCode = 429) in un intervallo di tempo specifico
CDBGremlinRequests
| project PIICommandText, ActivityId, DatabaseName , CollectionName
| join kind=inner throttledRequests on ActivityId
| project DatabaseName , CollectionName , PIICommandText , OperationName, TimeGenerated
Query con lunghezze di risposta elevate (dimensioni del payload della risposta del server)
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
Consumo di UR per partizione fisica (in tutte le repliche nel set di repliche)
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
Consumo di UR per partizione logica (in tutte le repliche nel set di repliche)
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
Passaggi successivi
- Per altre informazioni su come creare impostazioni di diagnostica per Azure Cosmos DB, vedere Creare impostazioni di diagnostica.
- Per informazioni dettagliate su come creare un'impostazione di diagnostica usando il portale di Azure, l'interfaccia della riga di comando di Azure o PowerShell, vedere Creare impostazioni di diagnostica per raccogliere i log e le metriche della piattaforma in Azure.