Logs de consulta

Concluído

Os recursos do Azure produzem Logs de Diagnóstico do Azure, que fornecem dados operacionais detalhados desses recursos. As configurações de diagnóstico são usadas para coletar esses logs de recursos.

Embora alguns logs, como a atividade e as métricas da plataforma, sejam coletados automaticamente, as configurações de diagnóstico devem ser criadas para coletar logs de recursos. Esses logs podem ser encaminhados para fora do Azure Monitor. A habilitação de configurações de diagnóstico em contas do Azure Cosmos DB pode ser encaminhada para espaços de trabalho do Log Analytics, hubs de eventos e contas de armazenamento.

Encaminhando dados para espaços de trabalho do Log Analytics, grava os logs em tabelas que podem ser consultadas usando a Kusto Query Language (KQL). Assim, para utilizar os dados de diagnóstico armazenados nestas tabelas, o conhecimento sobre leitura e escrita Kusto de consultas é essencial. Essas tabelas podem ser uma tabela herdada genérica chamada Diagnóstico do Azure ou as tabelas específicas de recursos recomendadas.

Criar configurações de diagnóstico do Azure Cosmos DB

Há várias maneiras de criar as configurações de diagnóstico, o portal do Azure, via API REST, PowerShell ou por meio da CLI do Azure.

Para criar as configurações de diagnóstico usando o portal do Azure, navegue até a conta do Azure Cosmos DB e, na Monitoring seção, escolha Configurações de diagnóstico. Edite uma configuração de diagnóstico existente ou escolha + Adicionar configuração de diagnóstico e escolha os logs que deseja coletar e os destinos para os quais encaminhar esses logs.

Diagram that shows the diagnostic settings options for Azure Cosmos DB.

As tabelas de log da API NoSQL são:

  • DataPlaneRequests - Esta tabela registra solicitações de back-end para operações que executam criar, atualizar, excluir ou recuperar dados.
  • QueryRuntimeStatistics - Esta tabela registra as operações de consulta na conta da API NoSQL.
  • PartitionKeyStatistics - Esta tabela registra estatísticas de chave de partição lógica em KB estimados. É útil ao solucionar problemas de armazenamento de distorção.
  • PartitionKeyRUConsumption - Esta tabela registra a cada segundo o consumo agregado de RU/s de chaves de partição. É útil na solução de problemas de partições quentes.
  • ControlPlaneRequests - Esta tabela registra dados de controle de conta do Azure Cosmos DB, por exemplo, adicionando ou removendo regiões nas configurações de replicação.

Solucionar problemas com consultas de diagnóstico

Quando os dados de diagnóstico do Azure Cosmos DB são enviados para o Log Analytics, eles são enviados para a AzureDiagnostics tabela ou para tabelas específicas de recursos. O modo preferido é enviar os dados para tabelas específicas de recursos, como tal, cada log escolhido nas opções de configurações de diagnóstico terá sua própria tabela. Escolher esse modo facilita o trabalho com os dados de diagnóstico, facilita a descoberta dos esquemas usados e melhora o desempenho em latência e tempos de consulta.

Consultas AzureDiagnostics

Se o modo herdado for escolhido, os dados de diagnóstico serão armazenados na tabela, para AzureDiagnostics que todas as kusto consultas sejam executadas nessa tabela. Como vários recursos do Azure também podem estar preenchendo essa tabela, inclua o filtro ResourceProvider=="MICROSOFT.DOCUMENTDB" em sua where cláusula para retornar apenas entradas do Azure Cosmos DB. Além disso, para diferenciar entre os diferentes logs escolhidos nas configurações de diagnóstico, adicione um filtro na Category coluna. Por exemplo, para retornar documentos para o QueryRuntimeStatistics log, inclua a cláusula | where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="QueryRuntimeStatistics"where . O Kusto diferencia maiúsculas de minúsculas, portanto, certifique-se de que os nomes das colunas são os maiúsculas e minúsculas. Vamos analisar alguns exemplos de Kusto consulta usando a AzureDiagnostics tabela.

  • Consulta que retorna a contagem e a solicitação total cobrada dos diferentes tipos de operação do Azure Cosmos DB na última hora.
AzureDiagnostics 
| where TimeGenerated >= ago(1h)
| where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="DataPlaneRequests" 
| summarize OperationCount = count(), TotalRequestCharged=sum(todouble(requestCharge_s)) by OperationName
| order by TotalRequestCharged desc 
  • Crie uma consulta que retorne um gráfico de gráfico de tempo para todas as solicitações bem-sucedidas (status 200) e limitadas de taxa (status 429) na última hora. Os pedidos serão agregados a cada 10 minutos.
AzureDiagnostics 
| where TimeGenerated >= ago(1h)
| where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="DataPlaneRequests" 
| summarize requestcount=count() by statusCode_s, bin(TimeGenerated, 10m)
| render timechart 

Consultas específicas de recursos

Ao contrário das AzureDiagnostic consultas, as consultas específicas de recursos serão executadas nas diferentes tabelas que foram criadas para cada categoria de log escolhida na caixa de diálogo de configuração de diagnóstico. Para usar essas tabelas, prefixe os nomes das tabelas na lista acima com a cadeia de caracteres CDB. Vamos analisar alguns exemplos.

  • Consulta que retorna a contagem e a solicitação total cobrada dos diferentes tipos de operação do Azure Cosmos DB na última hora.
CDBDataPlaneRequests
| where TimeGenerated >= ago(1h)
| summarize OperationCount = count(), TotalRequestCharged=sum(todouble(RequestCharge)) by OperationName
| order by TotalRequestCharged desc 
  • Crie uma consulta que retorne um gráfico de gráfico de tempo para todas as solicitações bem-sucedidas (status 200) e limitadas (status 429) na última hora.
CDBDataPlaneRequests 
| where TimeGenerated >= ago(2h)
| summarize requestcount=count() by StatusCode, bin(TimeGenerated, 10m)
| render timechart