Övervaka en Azure AI Search-lösning

Slutförd

Azure Monitor kan ge dig insikter om hur väl din söktjänst används och presterar. Du kan också få aviseringar för att proaktivt meddela dig om problem.

Här utforskar du alla tillgängliga övervakningsalternativ för Azure AI Search. Sedan får du lära dig mer om användbara aviseringar som du kan skapa för att hantera din söklösning.

Övervaka Azure AI Search i Azure Monitor

När du skapar din Azure AI-tjänsten Search, utan att du gör någon annan konfiguration, kan du se din aktuella svarstid för sökning, frågor per sekund och procentandelen begränsade frågor. Dessa data kan visas på fliken Övervakningsidan Översikt .

A screenshot of the monitor tab in Azure AI Search.

Du kan också kontrollera vilka resurser din söklösning använder på fliken Användning .

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

Den här grundläggande informationen är en bra början på övervakningen, men du kan gå vidare med lite mer konfiguration. Om du är bekant med att stödja andra resurser på Azure-plattformen vet du att Azure Monitor kan användas för alla dina Azure-resurser.

Faktum är att du redan har sett hur du aktiverar Azure Monitor i optimeringsprestandaenheten. Följ dessa steg för att tillåta att Azure Monitor använder data som samlats in i Log Analytics för att se en fullständig uppsättning diagnostikdata.

När du har börjat använda Log Analytics får du åtkomst till prestanda- och diagnostikdata i dessa loggtabeller:

  • AzureActivity – Visar uppgifter som har körts som att skala söktjänsten
  • AzureDiagnostics – Alla fråge- och indexeringsåtgärder
  • AzureMetrics – Data som används för mått som mäter hälsotillstånd och prestanda för din söktjänst

Använda mått för att se diagnostikdata visuellt

Att skapa diagram är ett kraftfullt sätt att se hur söktjänsten fungerar. Under avsnittet Övervakning i söktjänsten väljer du Mått.

A screenshot of the metrics page.

Välj nu att lägga till något av dessa insamlade mått:

  • DocumentsProcessedCount
  • SearchLatency
  • SearchQueriesPerSecond
  • SkillExecutionCount
  • ThrottledSearchQueriesPercentage

Du kan till exempel rita upp svarstid för sökning mot procentandelen begränsade frågor för att se om svaren på frågor påverkas av begränsning.

Skriva Kusto-frågor mot dina söklösningsloggar

Med Log Analytics kan du skriva kusto-frågor mot insamlade loggdata. Det enklaste sättet att köra dessa frågor är genom att välja Loggar under avsnittet Övervaka. Loggar öppnar Log Analytics med quest-fönstret automatiskt begränsat till din Azure AI Search-lösning.

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

Med ovanstående fråga kan du se en lista över de senaste åtgärderna och hur många gånger de har inträffat.

AzureDiagnostics
| summarize count() by OperationName

Följande är användbara frågor som hjälper dig att övervaka och diagnostisera problem med din söklösning:

Fråga

Kusto


Tidskrävande frågor

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

Indexerarens status

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

HTTP-statuskoder

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

Frågefrekvenser

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

Genomsnittlig frågesvarstid

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

Genomsnittliga frågor per minut (QPM)

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

Indexeringsåtgärder per minut (OPM)

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

Skapa aviseringar som ska meddelas om vanliga söklösningsproblem

Med aviseringar kan du proaktivt hantera din söktjänst. Här följer några vanliga aviseringar som du bör överväga att skapa:

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

  • Söksvarstid med måttsignalen, du kan ange vilken svarstid som utlöser aviseringen i sekunder
  • Begränsad sökprocent med måttsignalen kan du ange procentandelen
  • Ta bort söktjänsten med hjälp av aktivitetsloggsignalen, meddelas om söktjänsten tas bort
  • Stoppa söktjänsten med hjälp av aktivitetsloggsignalen, meddelas om söktjänsten stoppas, vilket inträffar om söktjänsten skalas upp eller ned eller behöver startas om