Monitorar solicitações de consulta no Azure AI Search
Este artigo explica como medir o desempenho e o volume da consulta usando métricas e 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, QPS (carga de consulta) e limitação. Dados históricos que alimentam essas métricas podem ser acessados no portal do Azure por 30 dias. Para uma retenção mais longa ou para gerar relatórios sobre dados operacionais e cadeias de consulta, você deve adicionar uma configuração de diagnóstico que especifique uma opção de armazenamento para persistir as operações e as métricas registradas. Recomendamos o workspace do Log Analytics como destino para as operações registradas. As consultas e a exploração de dados do Kusto têm como destino um workspace 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 standard). O serviço gratuito é compartilhado por vários assinantes, o que introduz certa volatilidade com o deslocamento de cargas.
Use uma única réplica e partição, se possível, para criar um ambiente independente 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 reduzir 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 podem 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 oferecem um ambiente mais estável para testes.
Dica
Com o código adicional do lado do cliente e o Application Insights, você também pode capturar dados de clickthrough para obter informações mais aprofundadas sobre o que atrai o interesse dos usuários do seu aplicativo. Para saber mais, confira 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 um valor médio, de contagem, mínimo ou máximo de consultas executadas em uma janela de um minuto. Os intervalos de um minuto (TimeGrain = "PT1M") para métricas são fixos no sistema.
Para saber mais sobre a métrica SearchQueriesPerSecond, consulte Consultas de pesquisa por segundo.
Desempenho de consulta
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 de execução total foi de 2 segundos.
Consultas limitadas
As consultas limitadas referem-se a consultas descartadas em vez de processadas. Na maioria dos casos, a limitação é uma parte normal da execução do serviço. Isso não é necessariamente uma indicação de que há algo errado. Para saber mais sobre a métrica ThrottledSearchQueriesPercentage, consulte a 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 ao log). Outras agregações, que aparecem na parte superior ou ao passar o mouse sobre a métrica, incluem o média, o máximo e o total. Neste exemplo, nenhuma solicitação foi descartada.
Para explorar as 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), Percentual de consultas de pesquisa limitadas) sobre os 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 Metrics Explorer no menu Monitoramento para que você possa aplicar camadas, ampliar e visualizar dados para explorar tendências ou anomalias. Saiba mais sobre o Metrics Explorer concluindo este Tutorial sobre como criar um gráfico de métricas.
Na seção Monitoramento, selecione Métricas para abrir o Metrics Explorer com o escopo definido para o serviço de pesquisa.
Em Métrica, escolha uma na lista suspensa e examine a lista de agregações disponíveis para um tipo preferencial. 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 diferentes agregações.
Amplie uma área de interesse no gráfico de linhas. Coloque o ponteiro do mouse no início da área, selecione e mantenha pressionado 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 consulta inseridas por usuários
Quando você habilita o registro log de recursos, o sistema captura solicitações de consulta na tabela AzureDiagnostics. Como pré-requisito, você já deve ter especificado um destino para as operações registradas, seja um workspace do Log Analytics ou outra opção de armazenamento.
Na seção Monitoramento, selecione Logs para abrir uma janela de consulta vazia no log Analytics.
Execute a seguinte expressão para pesquisar
Query.Search
operações, retornando um conjunto de resultados tabulares que consiste no nome da operação, na cadeia 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, 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 de colunas em Query_s para pesquisar por uma sintaxe ou cadeia de caracteres específica. Por exemplo, você pode filtrar por é igual a
?api-version=2024-07-01&search=*&%24filter=HotelName
.
Embora essa técnica funcione para a investigação ad hoc, a criação de um relatório permite que você consolide e apresente as cadeias de caracteres de consulta em um layout mais adequado à análise.
Identificar consultas de execução longa
Adicione a coluna de duração para obter os números de todas as consultas, não apenas aquelas que são selecionadas 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 consulta básica a seguir para retornar consultas, classificadas por duração em milissegundos. As consultas de execução mais longa estão na parte superior.
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 disparar uma ação corretiva que você define com antecedência. Você pode criar alertas relacionados à execução de consultas, mas também pode criá-los para a integridade dos recursos, alterações na 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ê poderá procurar soluções que reduzam a carga ou aumentem a capacidade. Por exemplo, se as consultas limitadas aumentarem durante a indexação, você poderá adiar isso até a atividade de consulta diminua.
Se você estiver efetuando push dos limites de uma configuração de partição de réplica específica, a configuração de alertas para limites de volume de consulta (QPS) também será útil.
Em Monitoramento, selecione Alertas e, em seguida, Criar regra de alerta.
Em Condição, selecione Adicionar.
Configure sinal lógico. Para tipo de sinal, escolha Métricas e, em seguida, selecione o sinal.
Após selecionar o sinal, você pode usar um gráfico para visualizar os dados históricos para tomar uma decisão informada sobre como prosseguir com a configuração das condições.
Em seguida, role para baixo até a 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. Essa é a resposta a ser invocada quando o limite é atingido. Pode ser uma notificação por push ou uma resposta automatizada.
Por fim, especifique os detalhes do alerta. Nomeie e descreva o alerta, atribua um valor de severidade e especifique se deseja criar a regra em um estado habilitado ou desabilitado.
Se você especificou uma notificação por email, receberá um email da "Microsoft Azure" com a linha de assunto "Azure: Gravidade Ativada: 3 <your rule name>
".
Próximas etapas
Se você ainda não tiver feito isso, examine os conceitos básicos do monitoramento do serviço de pesquisa para saber mais sobre a gama completa de recursos de supervisão.