Monitorar solicitações de consulta no Azure AI Search
Este artigo explica como medir o desempenho e o volume da consulta usando métricas internas e registro em log de recursos. Ele também explica como obter as cadeias de caracteres de consulta inseridas pelos usuários do aplicativo.
O portal do Azure mostra métricas básicas sobre latência de consulta, carga de consulta (QPS) e limitação. Os dados históricos que alimentam essas métricas podem ser acessados no portal do Azure por 30 dias. Para retenção mais longa ou para relatar dados operacionais e cadeias de caracteres de consulta, você deve adicionar uma configuração de diagnóstico que especifique uma opção de armazenamento para operações e métricas registradas persistentes. Recomendamos o espaço de trabalho do Log Analytics como destino para operações registradas. As consultas Kusto e a exploração de dados destinam-se a um espaço de trabalho do Log Analytics.
As condições que maximizam a integridade da medição de dados incluem:
Use um serviço faturável (um serviço criado na camada Básica ou Padrão). O serviço gratuito é compartilhado por vários assinantes, o que introduz uma certa volatilidade à medida que as cargas mudam.
Use uma única réplica e partição, se possível, para criar um ambiente contido e isolado. Se você usar várias réplicas, as métricas de consulta serão calculadas em média em vários nós, o que pode diminuir a precisão dos resultados. Da mesma forma, várias partições significam que os dados são divididos, com o potencial de que algumas partições possam ter dados diferentes se a indexação também estiver em andamento. Quando você ajusta o desempenho da consulta, um único nó e partição oferece um ambiente mais estável para testes.
Gorjeta
Com código adicional do lado do cliente e Application Insights, você também pode capturar dados de clickthrough para obter uma visão mais profunda do que atrai o interesse dos usuários do seu aplicativo. Para obter mais informações, consulte Análise de tráfego de pesquisa.
Volume de consulta (QPS)
O volume é medido como Consultas de Pesquisa por Segundo (QPS), uma métrica interna que pode ser relatada como valores médios, de contagem, mínimos ou máximos de consultas executadas em uma janela de um minuto. Intervalos de um minuto (TimeGrain = "PT1M") para métricas são fixados dentro do sistema.
Para saber mais sobre a métrica SearchQueriesPerSecond, consulte Consultas de pesquisa por segundo.
Desempenho de consultas
Em todo o serviço, o desempenho da consulta é medido como latência de pesquisa e consultas limitadas.
Latência de pesquisa
A latência de pesquisa indica quanto tempo uma consulta leva para ser concluída. Para saber mais sobre a métrica SearchLatency, consulte Latência de pesquisa.
Considere o seguinte exemplo de métricas de latência de pesquisa: 86 consultas foram amostradas, com uma duração média de 23,26 milissegundos. Um mínimo de 0 indica que algumas consultas foram descartadas. A consulta de execução mais longa levou 1000 milissegundos para ser concluída. O tempo total de execução foi de 2 segundos.
Consultas limitadas
Consultas limitadas referem-se a consultas que são descartadas em vez de processadas. Na maioria dos casos, a limitação é uma parte normal da execução do serviço. Não é necessariamente uma indicação de que há algo errado. Para saber mais sobre a métrica ThrottledSearchQueriesPercentagem, consulte Porcentagem de consultas de pesquisa limitadas.
Na captura de tela a seguir, o primeiro número é a contagem (ou o número de métricas enviadas para o log). Outras agregações, que aparecem na parte superior ou ao passar o mouse sobre a métrica, incluem média, máxima e total. Nesta amostra, nenhuma solicitação foi descartada.
Explore métricas no portal do Azure
Para uma visão rápida dos números atuais, a guia Monitoramento na página Visão geral do serviço mostra três métricas (latência de pesquisa, Consultas de pesquisa por segundo (por unidade de pesquisa), Porcentagem de consultas de pesquisa limitada) em intervalos fixos medidos em horas, dias e semanas, com a opção de alterar o tipo de agregação.
Para uma exploração mais profunda, abra o explorador de métricas no menu Monitoramento para que você possa colocar em camadas, ampliar e visualizar dados para explorar tendências ou anomalias. Saiba mais sobre o explorador de métricas concluindo este tutorial sobre como criar um gráfico de métricas.
Na seção Monitoramento, selecione Métricas para abrir o explorador de métricas com o escopo definido para seu serviço de pesquisa.
Em Métrica, escolha uma na lista suspensa e revise a lista de agregações disponíveis para um tipo preferido. A agregação define como os valores coletados são amostrados em cada intervalo de tempo.
No canto superior direito, defina o intervalo de tempo.
Escolha uma visualização. O padrão é um gráfico de linhas.
Coloque mais agregações em camadas escolhendo Adicionar métrica e selecionando agregações diferentes.
Aumente o zoom em uma área de interesse no gráfico de linhas. Coloque o ponteiro do mouse no início da área, selecione e segure o botão esquerdo do mouse, arraste para o outro lado da área e solte o botão. O gráfico amplia esse intervalo de tempo.
Retornar cadeias de caracteres de consulta inseridas pelos usuários
Quando você habilita o log de recursos, o sistema captura solicitações de consulta na tabela AzureDiagnostics. Como pré-requisito, você já deve ter especificado um destino para operações registradas, um espaço de trabalho de análise de log ou outra opção de armazenamento.
Na seção Monitoramento, selecione Logs para abrir uma janela de consulta vazia no Log Analytics.
Execute a expressão a seguir para operações de pesquisa
Query.Search
, retornando um conjunto de resultados tabulares que consiste no nome da operação, na cadeia de caracteres de consulta, no índice consultado e no número de documentos encontrados. As duas últimas instruções excluem cadeias de caracteres de consulta que consistem em uma pesquisa vazia ou não especificada, em um índice de exemplo, o que reduz o ruído nos resultados.AzureDiagnostics | project OperationName, Query_s, IndexName_s, Documents_d | where OperationName == "Query.Search" | where Query_s != "?api-version=2024-07-01&search=*" | where IndexName_s != "realestate-us-sample-index"
Opcionalmente, defina um filtro Coluna em Query_s para pesquisar sobre uma sintaxe ou cadeia de caracteres específica. Por exemplo, você pode filtrar sobre é igual a
?api-version=2024-07-01&search=*&%24filter=HotelName
.
Embora essa técnica funcione para investigação ad hoc, a criação de um relatório permite consolidar e apresentar as cadeias de caracteres de consulta em um layout mais propício à análise.
Identificar consultas de longa duração
Adicione a coluna de duração para obter os números de todas as consultas, não apenas daquelas que são escolhidas como uma métrica. A classificação desses dados mostra quais consultas levam mais tempo para serem concluídas.
Na seção Monitoramento, selecione Logs para consultar informações de log.
Execute a seguinte consulta básica para retornar consultas, ordenadas por duração em milissegundos. As consultas de execução mais longa estão no topo.
AzureDiagnostics | project OperationName, resultSignature_d, DurationMs, Query_s, Documents_d, IndexName_s | where OperationName == "Query.Search" | sort by DurationMs
Criar um alerta de métrica
Um alerta de métrica estabelece um limite para enviar uma notificação ou acionar uma ação corretiva definida com antecedência. Você pode criar alertas relacionados à execução de consultas, mas também pode criá-los para integridade de recursos, alterações de configuração do serviço de pesquisa, execução de habilidades e processamento de documentos (indexação).
Todos os limites são definidos pelo usuário, portanto, você deve ter uma ideia de qual nível de atividade deve disparar o alerta.
Para o monitoramento de consultas, é comum criar um alerta de métrica para latência de pesquisa e consultas limitadas. Se você souber quando as consultas são descartadas, você pode procurar soluções que reduzam a carga ou aumentem a capacidade. Por exemplo, se as consultas limitadas aumentarem durante a indexação, você poderá adiá-las até que a atividade de consulta diminua.
Se você estiver ultrapassando os limites de uma configuração específica de partição de réplica, a configuração de alertas para limites de volume de consulta (QPS) também é útil.
Em Monitoramento, selecione Alertas e, em seguida, selecione Criar regra de alerta.
Em Condição, selecione Adicionar.
Configure a lógica do sinal. Para o tipo de sinal, escolha métricas e, em seguida, selecione o sinal.
Depois de selecionar o sinal, você pode usar um gráfico para visualizar dados históricos para uma decisão informada sobre como proceder com a configuração das condições.
Em seguida, role para baixo até Lógica de alerta. Para prova de conceito, você pode especificar um valor artificialmente baixo para fins de teste.
Em seguida, especifique ou crie um Grupo de Ações. Esta é a resposta a ser invocada quando o limite é atingido. Pode ser uma notificação por push ou uma resposta automatizada.
Por último, especifique Detalhes do alerta. Nomeie e descreva o alerta, atribua um valor de gravidade e especifique se a regra deve ser criada em um estado habilitado ou desabilitado.
Se você especificou uma notificação por email, receberá um email de "Microsoft Azure" com uma linha de assunto de "Azure: Activated Severity: 3 <your rule name>
".
Próximos passos
Se ainda não o fez, reveja os fundamentos da monitorização de serviços de pesquisa para saber mais sobre toda a gama de capacidades de supervisão.