Monitorare le richieste di query in Azure AI Search

Questo articolo illustra come misurare le prestazioni e il volume delle query usando le metriche predefinite e la registrazione delle risorse. Viene inoltre illustrato come ottenere le stringhe di query immesse dagli utenti dell'applicazione.

Il portale di Azure mostra le metriche di base sulla latenza delle query, il caricamento delle query (QPS) e la limitazione delle richieste. È possibile accedere ai dati cronologici inseriti in queste metriche nel portale per 30 giorni. Per un tempo di conservazione più lungo o per segnalare dati e stringhe di query operativi, è necessario aggiungere un'impostazione di diagnostica che specifichi un'opzione di archiviazione per rendere persistenti le operazioni e le metriche registrate. È consigliabile usare l'area di lavoro Log Analytics come destinazione per le operazioni registrate. Le query Kusto e l'esplorazione di dati sono destinate a un'area di lavoro Log Analytics.

Le condizioni che ottimizzano l'integrità della misurazione dei dati includono:

  • Usare un servizio fatturabile (un servizio creato nel livello Basic o Standard). Il servizio gratuito è condiviso da più sottoscrittori, il che introduce una certa volatilità durante il cambiamento dei carichi.

  • Se possibile, usare una singola replica e una singola partizione per creare un ambiente indipendente e isolato. Se si usano più repliche, viene calcolata una medie delle metriche di query tra più nodi, il che può ridurre la precisione dei risultati. Analogamente, più partizioni comportano che i dati siano divisi, e alcune partizioni potrebbero potenzialmente avere dati diversi se anche un’indicizzazione è in corso. Quando si ottimizzano le prestazioni di query, un singolo nodo e una partizione offrono un ambiente più stabile per i test.

Suggerimento

Con codice aggiuntivo sul lato client e Application Insights, è anche possibile acquisire dati clickthrough per ottenere informazioni più approfondite su ciò che attira l'interesse degli utenti dell'applicazione. Per altre informazioni, vedere Analisi del traffico di ricerca.

Volume di query (QPS)

Il volume viene misurato come query di ricerca al secondo (QPS), una metrica predefinita che può essere segnalata come valore medio, conteggio, minimo o massimo delle query eseguite in una finestra di un minuto. Gli intervalli di un minuto (TimeGrain = "PT1M") per metriche sono fissi all'interno del sistema.

Per altre informazioni sulla metrica SearchQueriesPerSecond, vedere Query di ricerca al secondo.

Prestazioni delle query

Le prestazioni delle query a livello di servizio vengono misurate come latenza di ricerca e query limitate.

Latenza ricerca

La latenza di ricerca indica il tempo necessario per il completamento di una query. Per altre informazioni sulla metrica SearchLatency, vedere Latenza di ricerca.

Si consideri l'esempio seguente di metriche di latenza di ricerca: sono state campionate 86 query, con una durata media di 23,26 millisecondi. Un minimo di 0 indica che alcune query sono state eliminate. Il completamento della query con esecuzione più lunga è di 1000 millisecondi. Il tempo totale di esecuzione è stato di 2 secondi.

Aggregazioni di latenza

Query limitate

Le query limitate fanno riferimento a query eliminate anziché elaborate. Nella maggior parte dei casi, la limitazione è una parte usuale dell'esecuzione del servizio. Non è necessariamente un'indicazione che ci sia qualcosa di sbagliato. Per altre informazioni sulla metrica ThrottledSearchQueriesPercentage, vedere Percentuale query di ricerca limitate.

Nello screenshot seguente, il primo numero è il conteggio (o il numero di metriche inviate al log). Altre aggregazioni, visualizzate nella parte superiore o quando si passa il puntatore del mouse sulla metrica, includono media, massimo e totale. In questo esempio non sono state eliminate richieste.

Aggregazioni limitate

Esplorare metriche nel portale

Per dare a un’occhiata veloce ai numeri correnti, la scheda Monitoraggio nella pagina Panoramica del servizio mostra tre metriche (latenza di ricerca, query di ricerca al secondo (per unità di ricerca), percentuale query di ricerca limitate) su intervalli fissi misurati in ore, giorni e settimane, con l'opzione di modificare il tipo di aggregazione.

Per un'esplorazione più approfondita, aprire Esplora metriche dal menu Monitoraggio in modo da poter stratificare, ingrandire e visualizzare dati per esplorare tendenze o anomalie. Per altre informazioni su Esplora metriche, completare questa esercitazione sulla creazione di un grafico delle metriche.

  1. Nella sezione Monitoraggio, selezionare Metriche per aprire Esplora metriche con l'ambito impostato sul servizio di ricerca.

  2. In Metrica, sceglierne una dall'elenco a discesa ed esaminare l'elenco delle aggregazioni disponibili per un tipo di scelta. L'aggregazione definisce il modo in cui i valori raccolti vengono campionati in ogni intervallo di tempo.

    Esplora metriche per metrica QPS

  3. Nell'angolo superiore destro, impostare l'intervallo di tempo.

  4. Scegliere una visualizzazione. L’impostazione predefinita è un grafico a linee.

  5. Stratificare più aggregazioni scegliendo Aggiungi metrica e selezionando diverse aggregazioni.

  6. Ingrandire un'area di interesse sul grafico a linee. Posizionare il puntatore del mouse all'inizio dell'area, selezionare e tenere premuto il pulsante sinistro del mouse, trascinare l'altro lato dell'area e rilasciare il pulsante. Il grafico ingrandisce tale intervallo di tempo.

Restituire stringhe di query immesse dagli utenti

Quando si abilita la registrazione delle risorse, il sistema acquisisce le richieste di query nella tabella AzureDiagnostics. Come prerequisito, è necessario aver già specificato una destinazione per le operazioni registrate, un'area di lavoro Log Analytics o un'altra opzione di archiviazione.

  1. Nella sezione Monitoraggio, selezionare Log per aprire una finestra di query vuota in Log Analytics.

  2. Eseguire l'espressione seguente per cercare operazioni Query.Search, restituendo un set di risultati tabulare costituito dal nome dell'operazione, la stringa di query, l'indice sottoposto a query e dal numero di documenti trovati. Le ultime due istruzioni escludono stringhe di query costituite da una ricerca vuota o non specificata su un indice di esempio, il che riduce il rumore nei risultati.

       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"
    
  3. Facoltativamente, impostare un filtro Colonna su Query_s per eseguire una ricerca su una sintassi o una stringa specifica. Ad esempio, è possibile filtrare su è uguale a ?api-version=2024-07-01&search=*&%24filter=HotelName.

    Stringhe di query registrate

Sebbene questa tecnica funzioni per l'analisi ad hoc, la creazione di un report consente di consolidare e presentare le stringhe di query in un layout più favorevole all'analisi.

Identificare query con esecuzione prolungata

Aggiungere la colonna di durata per ottenere i numeri per tutte le query, non solo quelli raccolti come metrica. L'ordinamento di questi dati mostra quali query richiedono più tempo per il completamento.

  1. Nella sezione Monitoraggio, selezionare Log per eseguire query sulle informazioni di log.

  2. Eseguire la query di base seguente per restituire query, ordinate in base alla durata in millisecondi. Le query con esecuzione più lunga si trovano nella parte superiore.

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

    Ordinare query per durata

Creare un avviso per la metrica

Un avviso di metrica stabilisce una soglia per l'invio di una notifica o l'attivazione di un'azione correttiva definita in anticipo. È possibile creare avvisi correlati all'esecuzione di query, ma è anche possibile crearli per l'integrità delle risorse, le modifiche alla configurazione del servizio di ricerca, l'esecuzione di competenze e l'elaborazione di documenti (indicizzazione).

Tutte le soglie sono definite dall'utente, quindi è necessario avere un'idea di quale livello di attività debba attivare l'avviso.

Per il monitoraggio di query, è comune creare un avviso delle metriche per la latenza di ricerca e query limitate. Se si è a conoscenza di quando le query vengono eliminate, è possibile cercare soluzioni che riducono il carico o aumentano la capacità. Ad esempio, se le query limitate aumentano durante l'indicizzazione, è possibile posticipare l’indicizzazione fino a quando l'attività di query non si riduce.

Se si stanno approcciando i limiti di una particolare configurazione di partizione di replica, è utile anche configurare avvisi per le soglie del volume di query (QPS).

  1. In Monitoraggio, selezionare Avvisi, quindi Crea regola di avviso.

  2. In Condizione, selezionare Aggiungi.

  3. Configurare la logica dei segnali. Come tipo di segnale, scegliere metriche e quindi selezionare il segnale.

  4. Dopo aver selezionato il segnale, è possibile usare un grafico per visualizzare dati storici utili per una decisione informata su come procedere con la configurazione delle condizioni.

  5. Quindi, scorrere verso il basso fino a Logica di avviso. Per il modello di verifica, è possibile specificare un valore artificialmente basso a scopo di test.

  6. Quindi, specificare o creare un gruppo di azioni. Si tratta della risposta da richiamare quando viene raggiunta la soglia. Potrebbe trattarsi di una notifica push o di una risposta automatica.

  7. Specificare infine i dettagli dell'avviso. Denominare e descrivere l'avviso, assegnare un valore di criticità e specificare se creare la regola in uno stato abilitato o disabilitato.

Se è stata specificata una notifica tramite posta elettronica, si riceve un messaggio di posta elettronica da "Microsoft Azure" con l'oggetto "Azure: criticità attivata: 3 <your rule name>".

Passaggi successivi

Se non lo si è già fatto, esaminare i concetti fondamentali del monitoraggio del servizio di ricerca per ottenere informazioni sull'intera gamma di funzionalità di supervisione.