Övervaka frågebegäranden i Azure AI Search

Den här artikeln beskriver hur du mäter frågeprestanda och volymer med hjälp av inbyggda mått och resursloggning. Den förklarar också hur du hämtar frågesträngarna som angetts av programanvändare.

Azure-portalen visar grundläggande mått om frågesvarstid, frågebelastning (QPS) och begränsning. Historiska data som matas in i dessa mått kan nås i portalen i 30 dagar. För längre kvarhållning eller för att rapportera driftdata och frågesträngar måste du lägga till en diagnostikinställning som anger ett lagringsalternativ för att bevara loggade åtgärder och mått. Vi rekommenderar Log Analytics-arbetsytan som mål för loggade åtgärder. Kusto-frågor och datautforskning riktar sig mot en Log Analytics-arbetsyta.

Villkor som maximerar datamätningens integritet är:

  • Använd en fakturerbar tjänst (en tjänst som skapats på nivån Basic eller Standard). Den kostnadsfria tjänsten delas av flera prenumeranter, vilket medför en viss volatilitet när belastningen skiftar.

  • Använd om möjligt en enskild replik och partition för att skapa en innesluten och isolerad miljö. Om du använder flera repliker är frågemått i genomsnitt över flera noder, vilket kan sänka resultatprecisionen. På samma sätt innebär flera partitioner att data delas upp, med potentialen att vissa partitioner kan ha olika data om indexering också pågår. När du justerar frågeprestanda ger en enskild nod och partition en stabilare miljö för testning.

Dricks

Med ytterligare kod på klientsidan och Application Insights kan du också samla in klickdata för att få djupare insikt i vad som lockar dina programanvändares intresse. Mer information finns i Sök trafikanalys.

Frågevolym (QPS)

Volymen mäts som sökfrågor per sekund (QPS), ett inbyggt mått som kan rapporteras som ett genomsnitt, antal, lägsta eller högsta värden för frågor som körs inom en minut. Intervall på en minut (TimeGrain = "PT1M") för mått är fasta i systemet.

Det är vanligt att frågor körs i millisekunder, så det är bara frågor som mäter när sekunder visas i mått.

Sammansättningstyp beskrivning
Genomsnitt Det genomsnittliga antalet sekunder inom en minut under vilken frågekörningen inträffade.
Antal Antalet mått som skickas till loggen inom intervallet på en minut.
Högsta Det högsta antalet sökfrågor per sekund som registrerats under en minut.
Minimal Det lägsta antalet sökfrågor per sekund som registrerats under en minut.
Sum Summan av alla frågor som körs inom minuten.

Inom en minut kan du till exempel ha ett mönster som det här: en sekund med hög belastning som är det högsta för SearchQueriesPerSecond, följt av 58 sekunders genomsnittlig belastning och slutligen en sekund med bara en fråga, vilket är det minsta.

Ett annat exempel: om en nod genererar 100 mått, där värdet för varje mått är 40, är "Count" 100, "Sum" är 4000, "Average" är 40 och "Max" är 40.

Frågeprestanda

Frågeprestanda för hela tjänsten mäts som söksvarstid (hur lång tid det tar att slutföra en fråga) och begränsade frågor som har släppts till följd av resurskonkurrering.

Svarstid för sökning

Sammansättningstyp Svarstid
Genomsnitt Genomsnittlig frågevaraktighet i millisekunder.
Antal Antalet mått som skickas till loggen inom intervallet på en minut.
Högsta Den längsta frågan som körs i exemplet.
Minimal Kortaste körningsfråga i exemplet.
Totalt Total körningstid för alla frågor i exemplet som körs inom intervallet (en minut).

Tänk på följande exempel på mått för söksvarstid : 86 frågor har samplats, med en genomsnittlig varaktighet på 23,26 millisekunder. Minst 0 anger att vissa frågor har tagits bort. Den längsta frågan som kördes tog 1 000 millisekunder att slutföra. Den totala körningstiden var 2 sekunder.

Latency aggregations

Begränsade frågor

Begränsade frågor refererar till frågor som tas bort i stället för bearbetade. I de flesta fall är begränsning en normal del av körningen av tjänsten. Det är inte nödvändigtvis en indikation på att det är något fel.

Begränsning sker när antalet begäranden i körningen överskrider kapaciteten. Du kan se en ökning av begränsade begäranden när en replik tas ur rotation eller under indexering. Både fråge- och indexeringsbegäranden hanteras av samma uppsättning resurser.

Tjänsten avgör om begäranden ska tappas baserat på resursförbrukning. Procentandelen resurser som förbrukas över minne, CPU och disk-I/O är i genomsnitt under en tidsperiod. Om den här procentandelen överskrider ett tröskelvärde begränsas alla begäranden till indexet tills mängden begäranden minskas.

Beroende på din klient anges en begränsad begäran på följande sätt:

  • En tjänst returnerar ett fel "You are sending too many requests. Please try again later."
  • En tjänst returnerar en 503-felkod som anger att tjänsten för närvarande inte är tillgänglig.
  • Om du använder portalen (till exempel Sökutforskaren) tas frågan bort tyst och du måste välja Sök igen.

Om du vill bekräfta begränsade frågor använder du måttet Begränsade sökfrågor . Du kan utforska mått i portalen eller skapa ett aviseringsmått enligt beskrivningen i den här artikeln. För frågor som har tagits bort inom samplingsintervallet använder du Total för att hämta procentandelen frågor som inte kördes.

Sammansättningstyp Begränsning
Genomsnitt Procentandel frågor som tagits bort inom intervallet.
Antal Antalet mått som skickas till loggen inom intervallet på en minut.
Högsta Procentandel frågor som tagits bort inom intervallet.
Minimal Procentandel frågor som tagits bort inom intervallet.
Totalt Procentandel frågor som tagits bort inom intervallet.

För Begränsade sökfrågor i procent, lägsta, högsta, genomsnittliga och totala har alla samma värde: procentandelen sökfrågor som har begränsats, från det totala antalet sökfrågor under en minut.

I följande skärmbild är det första talet antalet (eller antalet mått som skickas till loggen). Andra aggregeringar, som visas överst eller vid hovring över måttet, inkluderar medelvärde, max och total. I det här exemplet togs inga begäranden bort.

Throttled aggregations

Utforska mått i portalen

För en snabb titt på de aktuella numren visar fliken Övervakning på sidan Tjänstöversikt tre mått (söksvarstid, sökfrågor per sekund (per sökenhet), Procent för begränsade sökfrågor) över fasta intervall mätt i timmar, dagar och veckor, med möjlighet att ändra aggregeringstypen.

För djupare utforskning öppnar du Metrics Explorer från övervakningsmenyn så att du kan lagra, zooma in och visualisera data för att utforska trender eller avvikelser. Läs mer om Metrics Explorer genom att slutföra den här självstudien om hur du skapar ett måttdiagram.

  1. Under avsnittet Övervakning väljer du Mått för att öppna måttutforskaren med omfånget inställt på söktjänsten.

  2. Under Mått väljer du en i listrutan och granskar listan över tillgängliga sammansättningar för en önskad typ. Aggregeringen definierar hur de insamlade värdena samplas under varje tidsintervall.

    Metrics explorer for QPS metric

  3. I det övre högra hörnet anger du tidsintervallet.

  4. Välj en visualisering. Standardvärdet är ett linjediagram.

  5. Lägg till fler aggregeringar genom att välja Lägg till mått och välja olika sammansättningar.

  6. Zooma in i ett intresseområde i linjediagrammet. Placera muspekaren i början av området, välj och håll ned den vänstra musknappen, dra till andra sidan av området och släpp knappen. Diagrammet zoomar in på det tidsintervallet.

Returnera frågesträngar som angetts av användare

När du aktiverar resursloggning samlar systemet in frågebegäranden i tabellen AzureDiagnostics . Som en förutsättning måste du redan ha angett ett mål för loggade åtgärder, antingen en log analytics-arbetsyta eller ett annat lagringsalternativ.

  1. Under avsnittet Övervakning väljer du Loggar för att öppna ett tomt frågefönster i Log Analytics.

  2. Kör följande uttryck för att söka efter Query.Search åtgärder och returnera en tabellresultatuppsättning som består av åtgärdsnamnet, frågesträngen, det index som efterfrågas och antalet dokument som hittas. De två sista uttrycken exkluderar frågesträngar som består av en tom eller ospecificerad sökning över ett exempelindex, vilket minskar bruset i dina resultat.

       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. Du kan också ange ett kolumnfilter på Query_s för att söka efter en specifik syntax eller sträng. Du kan till exempel filtrera över är lika med?api-version=2023-11-01&search=*&%24filter=HotelName.

    Logged query strings

Den här tekniken fungerar för ad hoc-undersökning, men genom att skapa en rapport kan du konsolidera och presentera frågesträngarna i en layout som är mer gynnsam för analys.

Identifiera långvariga frågor

Lägg till varaktighetskolumnen för att hämta talen för alla frågor, inte bara de som hämtas som ett mått. När du sorterar dessa data visas vilka frågor som tar längst tid att slutföra.

  1. Under avsnittet Övervakning väljer du Loggar för att fråga efter logginformation.

  2. Kör följande grundläggande fråga för att returnera frågor, sorterade efter varaktighet i millisekunder. De frågor som körs längst upp.

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

    Sort queries by duration

Skapa en måttavisering

En måttavisering upprättar ett tröskelvärde för att skicka ett meddelande eller utlösa en korrigerande åtgärd som du definierar i förväg. Du kan skapa aviseringar som rör frågekörning, men du kan också skapa dem för resurshälsa, ändringar i söktjänstens konfiguration, färdighetskörning och dokumentbearbetning (indexering).

Alla tröskelvärden är användardefinierade, så du bör ha en uppfattning om vilken aktivitetsnivå som ska utlösa aviseringen.

För frågeövervakning är det vanligt att skapa en måttavisering för söksvarstid och begränsade frågor. Om du vet när frågor tas bort kan du söka efter åtgärder som minskar belastningen eller ökar kapaciteten. Om begränsade frågor till exempel ökar under indexeringen kan du skjuta upp det tills frågeaktiviteten avtar.

Om du push-överför gränserna för en viss konfiguration av replikpartitioner är det också bra att konfigurera aviseringar för frågevolymtrösklar (QPS).

  1. Under Övervakning väljer du Aviseringar och sedan Skapa aviseringsregel.

  2. Under Villkor väljer du Lägg till.

  3. Konfigurera signallogik. För signaltyp väljer du mått och väljer sedan signalen.

  4. När du har valt signalen kan du använda ett diagram för att visualisera historiska data för ett välgrundat beslut om hur du ska gå vidare med att konfigurera villkor.

  5. Rulla sedan ned till Aviseringslogik. För proof-of-concept kan du ange ett artificiellt lågt värde i testsyfte.

  6. Ange eller skapa sedan en åtgärdsgrupp. Det här är svaret för att anropa när tröskelvärdet uppfylls. Det kan vara ett push-meddelande eller ett automatiserat svar.

  7. Ange senast aviseringsinformation. Namnge och beskriv aviseringen, tilldela ett allvarlighetsgradsvärde och ange om regeln ska skapas i ett aktiverat eller inaktiverat tillstånd.

Om du har angett ett e-postmeddelande får du ett e-postmeddelande från "Microsoft Azure" med ämnesraden "Azure: Aktiverad allvarlighetsgrad: 3 <your rule name>".

Nästa steg

Om du inte redan har gjort det kan du läsa grunderna i övervakning av söktjänsten för att lära dig mer om alla typer av tillsynsfunktioner.