Supervisar solicitudes de consulta en Azure AI Search

En este artículo se explica cómo medir el rendimiento y el volumen de las consultas mediante métricas integradas y el registro de recursos. También se explica cómo obtener las cadenas de consulta especificadas por los usuarios de la aplicación.

Azure Portal muestra métricas básicas sobre la latencia de consulta, la carga de consultas (QPS) y la limitación. Se puede acceder a los datos históricos que se alimentan de estas métricas en el portal durante 30 días. Para una retención más larga o para informar sobre los datos operativos y las cadenas de consulta, debe agregar una configuración de diagnóstico que especifique una opción de almacenamiento para conservar las operaciones registradas y las métricas. Se recomienda el área de trabajo de Log Analytics como destino para las operaciones registradas. Las consultas de Kusto y la exploración de datos tienen como destino un área de trabajo de Log Analytics.

Entre las condiciones que maximizan la integridad de la medición de datos se incluyen:

  • Uso de un servicio facturable (un servicio creado en el nivel Básico o Estándar). El servicio gratuito lo comparten entre varios suscriptores, lo cual introduce una cierta volatilidad ya que las cargas se desplazan.

  • Use una réplica y una partición, si es posible, para crear un entorno contenido y aislado. Si usa varias réplicas, se calcula el promedio de las métricas de consulta en varios nodos, lo que puede reducir la precisión de los resultados. Del mismo modo, el hecho de que haya varias particiones implica que los datos se dividen, con la posibilidad de que algunas particiones tengan datos diferentes si también se está llevando a cabo la indexación. Al optimizar el rendimiento de las consultas, un único nodo y una partición proporcionan un entorno más estable para las pruebas.

Sugerencia

Con código de cliente adicional y Application Insights puede también capturar datos click-through para obtener una visión más profunda de lo que atrae el interés de los usuarios de la aplicación. Para más información, consulte Análisis de tráfico de búsqueda.

Volumen de consultas (QPS)

El volumen se mide en términos de consultas de búsqueda por segundo (QPS), una métrica integrada que se puede presentar como un promedio, un recuento, un mínimo o un número máximo de consultas que se ejecutan en un período de un minuto. Los intervalos de un minuto (TimeGrain = "PT1M") de las métricas se fijan dentro del sistema.

Es habitual que las consultas se ejecuten en milisegundos, por lo que solo las consultas que miden como segundos aparecen en las métricas.

Tipo de agregación Descripción
Average El número medio de segundos de un minuto durante el que se produjo la ejecución de la consulta.
Recuento El número de métricas emitidas en el registro en el intervalo de un minuto.
Máximo Número máximo de consultas de búsqueda por segundo registradas durante un minuto.
Mínimo Número mínimo de consultas de búsqueda por segundo registradas durante un minuto.
Sum La suma de todas las consultas ejecutadas dentro del minuto.

Por ejemplo, en el transcurso de un minuto, podría tener un patrón parecido a este: un segundo de carga elevada que es el máximo en SearchQueriesPerSecond, seguido de 58 segundos de carga media y, por último, 1 segundo con solo una consulta (que es el mínimo).

Otro ejemplo: si un nodo emite 100 métricas y el valor de cada una de las métricas es 40, "Count" es 100, "Sum" es 4000, "Average" es 40 y "Max" es 40.

Rendimiento de las consultas

En todo el servicio, el rendimiento de las consultas se mide en términos de latencia de búsqueda (cuánto tiempo tarda una consulta en completarse) y de consultas limitadas que se quitaron como resultado de la contención de recursos.

Latencia de búsqueda

Tipo de agregación Latencia
Average Duración promedio de la consulta en milisegundos.
Recuento El número de métricas emitidas en el registro en el intervalo de un minuto.
Máximo Consulta con la ejecución más larga del ejemplo.
Mínimo Consulta con la ejecución más corta del ejemplo.
Total Tiempo total de ejecución de todas las consultas del ejemplo que se ejecutan en el intervalo (un minuto).

Considere el siguiente ejemplo de métricas de latencia de búsqueda: se muestrearon 86 consultas, con una duración media de 23,26 milisegundos. Un mínimo de 0 indica que se eliminaron algunas consultas. La consulta con la mayor duración tardó 1000 milisegundos en completarse. El tiempo de ejecución total fue de 2 segundos.

Latency aggregations

Consultas limitadas

Las consultas limitadas hacen referencia a las consultas que se quitan en lugar de procesadas. En la mayoría de los casos, la limitación es una parte normal de la ejecución del servicio. No es necesariamente una indicación de que hay algo incorrecto.

La limitación se produce cuando el número de solicitudes en ejecución supera la capacidad. Puede que observe un aumento en las solicitudes limitadas cuando se saca una réplica de la rotación o durante la indexación. El mismo conjunto de recursos controla las solicitudes de consulta y de indexación.

El servicio determina si debe reducir el número de solicitudes según el consumo de los recursos. Se realiza el promedio del porcentaje de los recursos que se consume entre memoria, CPU y E/S de disco durante un período de tiempo. Si este porcentaje supera un umbral, todas las solicitudes al índice se limitan hasta que el volumen de solicitudes se reduce.

En función del cliente, se indica una solicitud limitada de estas maneras:

  • Un servicio devuelve un error "You are sending too many requests. Please try again later."
  • Un servicio devuelve un código de error 503 que indica que el servicio no está disponible actualmente.
  • Si usa el portal (por ejemplo, el Explorador de búsqueda), la consulta se quita silenciosamente y debe seleccionar Buscar de nuevo.

Para confirmar las consultas limitadas, use la métrica Consultas de búsqueda limitadas. Puede explorar las métricas en el portal o crear una métrica de alerta tal y como se describe en este artículo. En el caso de las consultas que se quitaron dentro del intervalo de muestreo, use Total para obtener el porcentaje de consultas que no se ejecutaron.

Tipo de agregación Limitaciones
Average Porcentaje de consultas eliminadas en el intervalo.
Recuento El número de métricas emitidas en el registro en el intervalo de un minuto.
Máximo Porcentaje de consultas eliminadas en el intervalo.
Mínimo Porcentaje de consultas eliminadas en el intervalo.
Total Porcentaje de consultas eliminadas en el intervalo.

En el caso de Porcentaje de consultas de búsqueda limitadas, "minimum", "maximum", "average" y "total" tienen el mismo valor: el porcentaje de consultas de búsqueda que se limitaron en comparación con el número total de consultas de búsqueda durante un minuto.

En la siguiente captura de pantalla, el primer número es el valor de "count" (o número de métricas enviadas al registro). Otras agregaciones, que aparecen en la parte superior o al mantener el puntero sobre la métrica, incluyen promedio, máximo y total. En este ejemplo, no se eliminó ninguna solicitud.

Throttled aggregations

Exploración de las métricas en el portal

Para echar un vistazo a las cifras actuales, la pestaña Supervisión de la página de información general del servicio ofrece tres métricas (Latencia de búsqueda, Consultas de búsqueda por segundo (por unidad de búsqueda), Porcentaje de consultas de búsqueda limitadas) en intervalos fijos que se miden en horas, días y semanas con la posibilidad de cambiar el tipo de agregación.

Para un análisis en profundidad, abra el explorador de métricas en el menú Supervisión para que pueda clasificar, ampliar y visualizar los datos en busca de tendencias o anomalías. Para más información sobre el explorador de métricas, realice este tutorial sobre creación de un gráfico de métricas.

  1. En la sección Supervisión, seleccione Métricas para que se abra el explorador de métricas con el ámbito establecido en el servicio de búsqueda.

  2. En Métricas, elija una de la lista desplegable y revise la lista de las agregaciones disponibles para seleccionar el tipo que prefiera. La agregación define cómo se muestrearán los valores recopilados en cada intervalo de tiempo.

    Metrics explorer for QPS metric

  3. En la esquina superior derecha, establezca el intervalo de tiempo.

  4. Elija una visualización. La opción predeterminada es un gráfico de líneas.

  5. Para agregar más agregaciones, elija Agregar métricas y seleccione diferentes agregaciones.

  6. Acerque cualquier área de su interés en el gráfico de líneas. Coloque el puntero del mouse al principio del área, seleccione y mantenga presionado el botón izquierdo del mouse, arrástrelo al otro lado del área y suelte el botón. El gráfico se acerca en ese intervalo de tiempo.

Devolución de cadenas de consulta introducidas por los usuarios

Cuando habilita el registro de recursos, el sistema captura las solicitudes de consulta en la tabla AzureDiagnostics. Como requisito previo, debe haber especificado ya un destino para las operaciones registradas, ya sea un área de trabajo de análisis de registros u otra opción de almacenamiento.

  1. En la sección Supervisión, seleccione Registros para que se abra una ventana de consulta vacía en Log Analytics.

  2. Ejecute la siguiente expresión para buscar Query.Search operaciones, devolviendo un conjunto de resultados tabular que consta del nombre de la operación, la cadena de consulta, el índice consultado y el número de documentos encontrados. Las dos últimas instrucciones excluyen las cadenas de consulta que consisten en una búsqueda vacía o no específica, en un índice de búsqueda, lo cual reduce el ruido en los resultados.

       AzureDiagnostics
    | project OperationName, Query_s, IndexName_s, Documents_d
    | where OperationName == "Query.Search"
    | where Query_s != "?api-version=2023-07-01-preview&search=*"
    | where IndexName_s != "realestate-us-sample-index"
    
  3. Opcionalmente, puede establecer Query_s para que busque una cadena o sintaxis específica. Por ejemplo, puede filtrar por es igual a?api-version=2023-11-01&search=*&%24filter=HotelName.

    Logged query strings

Aunque esta técnica funciona para la investigación ad hoc, la creación de un informe le permite consolidar y presentar las cadenas de consulta en un diseño que facilita el análisis.

Identificación de consultas de larga duración

Agregue la columna de duración para obtener las cifras de todas las consultas, no solo de aquellas que se han seleccionado como métrica. La ordenación de estos datos le permite observar qué consultas tardaron más tiempo en completarse.

  1. En la sección Supervisión, seleccione Registros para consultar la información sobre registros.

  2. Ejecute la siguiente consulta básica para que devuelva las consultas, ordenadas según la duración en milisegundos. Las consultas de mayor duración se encuentran en la parte superior.

    AzureDiagnostics
    | project OperationName, resultSignature_d, DurationMs, Query_s, Documents_d, IndexName_s
    | where OperationName == "Query.Search"
    | sort by DurationMs
    

    Sort queries by duration

Creación de una alerta de métrica

Una alerta de métrica establece un umbral para enviar una notificación o desencadenar una acción correctiva que defina de antemano. Puede crear alertas relacionadas con la ejecución de consultas, pero también puede crearlas para el estado de los recursos, los cambios de configuración del servicio de búsqueda, la ejecución de aptitudes y el procesamiento de documentos (indexación).

Todos los umbrales están definidos por el usuario, por lo que debe tener una idea de qué nivel de actividad debe desencadenar la alerta.

Para la supervisión de consultas, es habitual crear una alerta de métrica para la latencia de búsqueda y las consultas limitadas. Si sabe cuándo se eliminan las consultas, puede buscar soluciones que reduzcan la carga o aumenten la capacidad. Por ejemplo, si las consultas limitadas aumentan durante la indexación, podría posponer esta hasta que la actividad de consulta disminuya.

Si va a insertar los límites de una configuración determinada de partición de réplica, también resulta útil configurar alertas para umbrales de volumen de consulta (QPS).

  1. En Supervisión, seleccione Alertas y, a continuación, seleccione Crear regla de alertas.

  2. En Condición, seleccione Agregar.

  3. Configure la lógica de señal. En tipo de señal, seleccione métricas y, a continuación, seleccione la señal.

  4. Después de seleccionar la señal, puede usar un gráfico para visualizar los datos históricos para poder tomar una decisión informada sobre cómo proceder con las condiciones de configuración.

  5. A continuación, desplácese hacia abajo hasta Lógica de alerta. Para la prueba de concepto, puede especificar un valor intencionadamente bajo con fines de prueba.

  6. Después, especifique o cree un grupo de acciones. Esta será la respuesta que se invoque cuando se alcance el umbral. Puede tratarse del envío de una notificación o una respuesta automática.

  7. Por último, especifique los detalles de la alerta. Asigne un nombre a la alerta y descríbala, asigne un valor de gravedad y especifique si se debe crear la alerta en un estado habilitado o deshabilitado.

Si especificó una notificación por correo electrónico, recibirá un correo electrónico de "Microsoft Azure" con una línea de asunto de "Azure: Gravedad activada: 3 <your rule name>".

Pasos siguientes

Si aún no lo ha hecho, revise los aspectos fundamentales de la supervisión en el servicio de búsqueda para más información sobre la gama completa de funcionalidades de supervisión.