Övervaka en Azure AI Search-lösning
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 Övervakning på sidan Översikt .
Du kan också kontrollera vilka resurser din söklösning använder på fliken Användning .
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.
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.
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:
- 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