Solucionar problemas com consultas de diagnóstico avançado com o Azure Cosmos DB para MongoDB
APLICA-SE A: NoSQL MongoDB Cassandra Gremlin
Neste artigo, abordaremos como escrever consultas mais avançadas para ajudar a solucionar problemas com sua conta do Azure Cosmos DB usando logs de diagnóstico enviados para tabelas de Diagnóstico do Azure (legado) e específicas de recursos (visualização).
Para tabelas de Diagnóstico do Azure, todos os dados são gravados em uma única tabela. Os usuários especificam qual categoria desejam consultar. Se você quiser exibir a consulta de texto completo de sua solicitação, consulte Monitorar dados do Azure Cosmos DB usando configurações de diagnóstico no Azure para saber como habilitar esse recurso.
Para tabelas específicas de recursos, os dados são gravados em tabelas individuais para cada categoria do recurso. Recomendamos este modo porque:
- Torna muito mais fácil trabalhar com os dados.
- Fornece melhor capacidade de descoberta dos esquemas.
- Melhora o desempenho em latência de ingestão e tempos de consulta.
Consultas comuns
As consultas comuns são mostradas nas tabelas específicas de recursos e Diagnósticos do Azure.
Top N(10) Unidade de Solicitação (RU) consumindo solicitações ou consultas em um período de tempo específico
//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
Solicitações limitadas (statusCode = 429 ou 16500) em uma janela de tempo específica
CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "429" or ErrorCode == "16500"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated
Solicitações com tempo limite (statusCode = 50) em uma janela de tempo específica
CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "50"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated
Consultas com grandes comprimentos de resposta (tamanho da carga útil da resposta do servidor)
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
Consumo de RU por partição física (em todas as réplicas no conjunto 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
Consumo de RU por partição lógica (em todas as réplicas do conjunto 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
Próximos passos
- Para obter mais informações sobre como criar configurações de diagnóstico para o Azure Cosmos DB, consulte Criar configurações de diagnóstico.
- Para obter informações detalhadas sobre como criar uma configuração de diagnóstico usando o portal do Azure, a CLI do Azure ou o PowerShell, consulte Criar configurações de diagnóstico para coletar logs e métricas da plataforma no Azure.