Monitorare una soluzione di Azure AI Search

Completato

Monitoraggio di Azure può fornire informazioni dettagliate sull'uso e sulle prestazioni del servizio di ricerca. È anche possibile ricevere avvisi per essere avvisati in modo proattivo in caso di problemi.

In questa unità si esploreranno tutte le opzioni di monitoraggio disponibili Azure AI Search. Verranno quindi illustrati gli avvisi utili che è possibile creare per gestire la soluzione di ricerca.

Monitorare Azure AI Search in Monitoraggio di Azure

Quando si crea il servizio Azure AI Search, senza eseguire alcuna altra operazione di configurazione, è possibile visualizzare la latenza di ricerca corrente, le query al secondo e la percentuale di query limitate. Questi dati possono essere visualizzati nella scheda Monitoraggio della pagina Panoramica.

A screenshot of the monitor tab in Azure AI Search.

È anche possibile controllare quali sono le risorse usate dalla soluzione di ricerca nella scheda Utilizzo.

A screenshot of the usage tab on the overview page of Azure AI Search service.

Queste informazioni di base sono un buon inizio per il monitoraggio, ma è possibile andare oltre con qualche altra configurazione. Come sa bene chi ha familiarità con il supporto di altre risorse nella piattaforma Azure, Monitoraggio di Azure può essere usato per tutte le risorse di Azure.

Si è già visto infatti come abilitare Monitoraggio di Azure nell'unità Ottimizzare le prestazioni. Seguire questa procedura per consentire a Monitoraggio di Azure di usare i dati acquisiti in Log Analytics per visualizzare un set completo di dati di diagnostica.

Dopo aver iniziato a usare Log Analytics, si avrà accesso ai dati relativi a prestazioni e diagnostica nelle tabelle di log seguenti:

  • AzureActivity: mostra le attività che sono state eseguite, ad esempio il ridimensionamento del servizio di ricerca
  • AzureDiagnostics: tutte le operazioni di query e indicizzazione
  • AzureMetrics: dati usati per le metriche che misurano l'integrità e le prestazioni del servizio di ricerca

Usare le metriche per visualizzare i dati di diagnostica

La creazione di grafici è un modo efficace per visualizzare le prestazioni del servizio di ricerca. Nella sezione Monitoraggio del servizio di ricerca selezionare Metriche.

A screenshot of the metrics page.

Selezionare ora l'opzione desiderata per aggiungere una di queste metriche acquisite:

  • DocumentsProcessedCount
  • SearchLatency
  • SearchQueriesPerSecond
  • SkillExecutionCount
  • ThrottledSearchQueriesPercentage

È ad esempio possibile tracciare la latenza di ricerca rispetto alla percentuale di query limitate per verificare se le risposte alle query sono interessate dalla limitazione.

Scrivere query Kusto sui log delle soluzioni di ricerca

Log Analytics consente di scrivere qualsiasi query Kusto sui dati di log acquisiti. Il modo più semplice per eseguire queste query consiste nel selezionare Log nella sezione Monitoraggio. Log apre Log Analytics con la finestra della richiesta impostata automaticamente sull'ambito della soluzione di Azure AI Search.

A screenshot of a Log Analytics Kusto query against the AzureDiagnostic table.

La query precedente consente di visualizzare un elenco di operazioni recenti e il numero di volte in cui sono state eseguite.

AzureDiagnostics
| summarize count() by OperationName

Le query seguenti sono utili per monitorare e diagnosticare i problemi della soluzione di ricerca:

Query

Kusto


Query con esecuzione prolungata

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

Stato dell'indicizzatore

AzureDiagnostics
| project OperationName, Description_s, Documents_d, ResultType, resultSignature_d
| where OperationName == "Indexers.Status"

Codici di stato HTTP

AzureDiagnostics
| where TimeGenerated > ago(7d)
| summarize count() by resultSignature_d
| render barchart

Frequenze query

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

Latenza media query

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

Numero medio di query al minuto

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

Operazioni di indicizzazione al minuto

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

Creare avvisi per ricevere una notifica sui problemi comuni della soluzione di ricerca

Gli avvisi consentono di gestire in modo proattivo il servizio di ricerca. Ecco alcuni avvisi usati comunemente che è consigliabile creare:

A screenshot of all the metric you can create alerts for.

  • Latenza ricerca: usando il segnale della metrica, è possibile specificare la latenza che attiva l'avviso in pochi secondi
  • Percentuale query di ricerca limitate: usando il segnale della metrica, è possibile specificare la percentuale
  • Elimina servizio di ricerca: usando il segnale del log attività, si riceve una notifica se il servizio di ricerca viene eliminato
  • Arresta servizio di ricerca: usando il segnale del log attività, si riceve una notifica se il servizio di ricerca viene arrestato, il che si verifica se le prestazioni del servizio di ricerca vengono aumentate o ridotte oppure se è necessario riavviare il servizio