Monitorar uma solução da Pesquisa de IA do Azure
O Azure Monitor pode fornecer insights sobre o uso e o desempenho de seu serviço de pesquisa. Você também pode receber alertas para ser notificado proativamente sobre problemas.
Aqui, você vai explorar todas as opções de monitoramento disponíveis para a Pesquisa de IA do Azure. Em seguida, você vai aprender sobre alertas úteis que pode criar para gerenciar sua solução de pesquisa.
Monitorar a Pesquisa de IA do Azure no Azure Monitor
Ao criar seu serviço da Pesquisa de IA do Azure, sem fazer nenhuma outra configuração, você pode ver sua latência de pesquisa atual, consultas por segundo e a porcentagem de consultas limitadas. Esses dados podem ser exibidos na guia Monitoramento da página de Visão Geral.
Você também pode verificar quais recursos sua solução de pesquisa está usando na guia Uso.
Essas informações básicas são um bom começo para o monitoramento, mas você pode ir mais longe com um pouco mais de configuração. Se você estiver familiarizado com o suporte a outros recursos na plataforma do Azure, saberá que o Azure Monitor pode ser usado para todos os recursos do Azure.
Na verdade, você já viu como habilitar o Azure Monitor na unidade otimizar o desempenho. Siga essas etapas para permitir que o Azure Monitor use dados capturados no Log Analytics para ver um conjunto completo de dados de diagnóstico.
Depois de começar a usar o Log Analytics, você obtém acesso a dados de desempenho e diagnóstico nestas tabelas de log:
- AzureActivity – mostra tarefas que foram executadas, como dimensionar o serviço de pesquisa
- AzureDiagnostics – todas as operações de consulta e indexação
- AzureMetrics – dados usados para métricas que medem a integridade e o desempenho do serviço de pesquisa
Usar métricas para ver os dados de diagnóstico visualmente
A criação de gráficos é uma maneira poderosa de exibir o desempenho do serviço de pesquisa. Na seção Monitoramento do serviço de pesquisa, selecione Métricas.
Agora, selecione para adicionar qualquer uma das métricas capturadas:
- DocumentsProcessedCount
- SearchLatency
- SearchQueriesPerSecond
- SkillExecutionCount
- ThrottledSearchQueriesPercentage
Por exemplo, você pode plotar a latência da pesquisa em relação ao percentual de consultas limitadas para ver se as respostas às consultas são afetadas pela limitação.
Escrever consultass Kusto nos logs das soluções de pesquisa
O Log Analytics permite que você escreva qualquer consulta Kusto nos dados de log capturados. A maneira mais fácil de executar essas consultas é selecionando Logs na seção Monitorsr. Logs abre o Log Analytics com a janela de busca automaticamente no escopo da solução da Pesquisa de IA do Azure.
A consulta acima permite que você veja uma lista de operações recentes e quantas vezes elas aconteceram.
AzureDiagnostics
| summarize count() by OperationName
Estas consultas são úteis para ajudar você a monitorar e diagnosticar problemas com sua solução de pesquisa:
Consulta
Kusto
Consultas de execução longa
AzureDiagnostics
| project OperationName, resultSignature_d, DurationMs, Query_s, Documents_d, IndexName_s
| where OperationName == "Query.Search"
| sort by DurationMs
Status do indexador
AzureDiagnostics
| project OperationName, Description_s, Documents_d, ResultType, resultSignature_d
| where OperationName == "Indexers.Status"
Códigos de status HTTP
AzureDiagnostics
| where TimeGenerated > ago(7d)
| summarize count() by resultSignature_d
| render barchart
Taxas de consulta
AzureDiagnostics
| where OperationName == "Query.Search" and TimeGenerated > ago(1d)
| extend MinuteOfDay = substring(TimeGenerated, 0, 16)
| project MinuteOfDay, DurationMs, Documents_d, IndexName_s
| summarize QPM=count(), AvgDuractionMs=avg(DurationMs), AvgDocCountReturned=avg(Documents_d) by MinuteOfDay
| order by MinuteOfDay desc
| render timechart
Latência média de consulta
let intervalsize = 1m;
let _startTime = datetime('2021-02-23 17:40');
let _endTime = datetime('2021-02-23 18:00');
AzureDiagnostics
| where TimeGenerated between(['_startTime']..['_endTime']) // Time range filtering
| summarize AverageQueryLatency = avgif(DurationMs, OperationName in ("Query.Search", "Query.Suggest", "Query.Lookup", "Query.Autocomplete"))
by bin(TimeGenerated, intervalsize)
| render timechart
Média de consultas por minuto (QPM)
let intervalsize = 1m;
let _startTime = datetime('2021-02-23 17:40');
let _endTime = datetime('2021-02-23 18:00');
AzureDiagnostics
| where TimeGenerated between(['_startTime'] .. ['_endTime']) // Time range filtering
| summarize QueriesPerMinute=bin(countif(OperationName in ("Query.Search", "Query.Suggest", "Query.Lookup", "Query.Autocomplete"))/(intervalsize/1m), 0.01)
by bin(TimeGenerated, intervalsize)
| render timechart
Operações de indexação por minuto (OPM)
let intervalsize = 1m;
let _startTime = datetime('2021-02-23 17:40');
let _endTime = datetime('2021-02-23 18:00');
AzureDiagnostics
| where TimeGenerated between(['_startTime'] .. ['_endTime']) // Time range filtering
| summarize IndexingOperationsPerSecond=bin(countif(OperationName == "Indexing.Index")/ (intervalsize/1m), 0.01)
by bin(TimeGenerated, intervalsize)
| render timechart
Criar alertas para ser notificado sobre problemas comuns da solução de pesquisa
Os alertas podem permitir que você gerencie proativamente o serviço de pesquisa. Estes são alguns alertas comumente usados que você deve considerar criar:
- Latência de Pesquisa usando o sinal de métrica, você pode especificar qual latência dispara o alerta em segundos
- Porcentagem de pesquisa limitada usando o sinal de métrica, você pode especificar a porcentagem
- Excluir o Serviço de Pesquisa usando o sinal do log de atividades, seja notificado se o serviço de pesquisa for excluído
- Parar o Serviço de Pesquisa usando o sinal do log de atividades, seja notificado se o serviço de pesquisa for interrompido, o que acontecerá se o serviço de pesquisa for escalado ou reduzido verticalmente ou precisar ser reiniciado