Queryaanvragen bewaken in Azure AI Search

In dit artikel wordt uitgelegd hoe u de prestaties en het volume van query's kunt meten met behulp van ingebouwde metrische gegevens en resourcelogboeken. Ook wordt uitgelegd hoe u de queryreeksen kunt ophalen die door toepassingsgebruikers zijn ingevoerd.

De Azure-portal bevat basisgegevens over querylatentie, querybelasting (QPS) en beperking. Historische gegevens die worden ingevoerd in deze metrische gegevens, kunnen gedurende 30 dagen in de portal worden geopend. Voor langere retentie of om te rapporteren over operationele gegevens en queryreeksen, moet u een diagnostische instelling toevoegen waarmee een opslagoptie wordt opgegeven voor het behouden van vastgelegde bewerkingen en metrische gegevens. We raden de Log Analytics-werkruimte aan als bestemming voor vastgelegde bewerkingen. Kusto-query's en gegevensverkenning richten zich op een Log Analytics-werkruimte.

Voorwaarden die de integriteit van de gegevensmeting maximaliseren, zijn onder andere:

  • Gebruik een factureerbare service (een service die is gemaakt in de Basic- of Standard-laag). De gratis service wordt gedeeld door meerdere abonnees, waardoor een bepaalde mate van volatiliteit wordt geïntroduceerd wanneer de belasting verandert.

  • Gebruik indien mogelijk één replica en partitie om een ingesloten en geïsoleerde omgeving te maken. Als u meerdere replica's gebruikt, worden metrische querygegevens gemiddeld berekend op meerdere knooppunten, waardoor de nauwkeurigheid van de resultaten kan worden verlaagd. Op dezelfde manier betekenen meerdere partities dat gegevens worden verdeeld, met het potentieel dat sommige partities verschillende gegevens kunnen hebben als indexering ook wordt uitgevoerd. Wanneer u de queryprestaties afstemt, biedt één knooppunt en partitie een stabielere omgeving voor het testen.

Tip

Met extra code aan de clientzijde en Application Insights kunt u ook clickthrough-gegevens vastleggen om meer inzicht te krijgen in wat de interesse van uw toepassingsgebruikers trekt. Zie Zoekverkeersanalyse voor meer informatie.

Queryvolume (QPS)

Het volume wordt gemeten als zoekquery's per seconde (QPS), een ingebouwde metriek die kan worden gerapporteerd als gemiddelde, aantal, minimum- of maximumwaarden van query's die binnen een venster van één minuut worden uitgevoerd. Intervallen van één minuut (TimeGrain = "PT1M") voor metrische gegevens worden in het systeem opgelost.

Het is gebruikelijk dat query's worden uitgevoerd in milliseconden, dus alleen query's die meten als seconden worden weergegeven in metrische gegevens.

Aggregatietype Beschrijving
Gemiddeld Het gemiddelde aantal seconden binnen een minuut waarin de uitvoering van de query heeft plaatsgevonden.
Tellen Het aantal metrische gegevens dat wordt verzonden naar het logboek binnen het interval van één minuut.
Maximum Het hoogste aantal zoekquery's per seconde dat gedurende een minuut is geregistreerd.
Minimum Het laagste aantal zoekquery's per seconde dat gedurende een minuut is geregistreerd.
Sum De som van alle query's die binnen de minuut worden uitgevoerd.

U kunt bijvoorbeeld binnen één minuut een patroon als volgt hebben: een seconde hoge belasting die het maximum is voor SearchQueriesPerSecond, gevolgd door 58 seconden van gemiddelde belasting en ten slotte één seconde met slechts één query, wat het minimum is.

Een ander voorbeeld: als een knooppunt 100 metrische gegevens verzendt, waarbij de waarde van elke metriek 40 is, is 'Aantal' 100, 'Som' is 4000, 'Gemiddelde' is 40 en 'Max' is 40.

Queryprestaties

Servicebrede queryprestaties worden gemeten als zoeklatentie (hoe lang een query duurt om te voltooien) en beperkte query's die zijn verwijderd als gevolg van resourceconflicten.

Zoeklatentie

Aggregatietype Latentie
Gemiddeld Gemiddelde queryduur in milliseconden.
Tellen Het aantal metrische gegevens dat wordt verzonden naar het logboek binnen het interval van één minuut.
Maximum Langst lopende query in het voorbeeld.
Minimum De kortste actieve query in het voorbeeld.
Totaal Totale uitvoeringstijd van alle query's in het voorbeeld, uitgevoerd binnen het interval (één minuut).

Bekijk het volgende voorbeeld van metrische gegevens over de zoeklatentie : 86 query's zijn gesampleerd, met een gemiddelde duur van 23,26 milliseconden. Minimaal 0 geeft aan dat sommige query's zijn verwijderd. De langst lopende query duurde 1000 milliseconden om te voltooien. De totale uitvoeringstijd was 2 seconden.

Latency aggregations

Beperkte query's

Beperkte query's verwijzen naar query's die worden verwijderd in plaats van verwerkt. In de meeste gevallen is beperking een normaal onderdeel van het uitvoeren van de service. Het is niet noodzakelijkerwijs een indicatie dat er iets mis is.

Beperking treedt op wanneer het aantal aanvragen in de uitvoering de capaciteit overschrijdt. Mogelijk ziet u een toename in vertraagde aanvragen wanneer een replica uit de rotatie of tijdens het indexeren wordt gehaald. Zowel query- als indexeringsaanvragen worden verwerkt door dezelfde set resources.

De service bepaalt of aanvragen moeten worden verwijderd op basis van resourceverbruik. Het percentage resources dat in het geheugen, de CPU en de schijf-IO wordt verbruikt, wordt gedurende een bepaalde periode gemiddeld berekend. Als dit percentage een drempelwaarde overschrijdt, worden alle aanvragen voor de index beperkt totdat het aantal aanvragen wordt verminderd.

Afhankelijk van uw client wordt een vertraagde aanvraag op deze manieren aangegeven:

  • Een service retourneert een fout "You are sending too many requests. Please try again later."
  • Een service retourneert een 503-foutcode die aangeeft dat de service momenteel niet beschikbaar is.
  • Als u de portal gebruikt (bijvoorbeeld Search Explorer), wordt de query op de achtergrond verwijderd en moet u Zoeken opnieuw selecteren.

Gebruik de metrische gegevens voor beperkte zoekquery's om vertraagde query's te bevestigen. U kunt metrische gegevens verkennen in de portal of een waarschuwingsmetriek maken, zoals beschreven in dit artikel. Gebruik Totaal voor query's die zijn verwijderd binnen het steekproefinterval om het percentage query's op te halen dat niet is uitgevoerd.

Aggregatietype Beperking
Gemiddeld Het percentage query's dat binnen het interval is verwijderd.
Tellen Het aantal metrische gegevens dat wordt verzonden naar het logboek binnen het interval van één minuut.
Maximum Het percentage query's dat binnen het interval is verwijderd.
Minimum Het percentage query's dat binnen het interval is verwijderd.
Totaal Het percentage query's dat binnen het interval is verwijderd.

Voor beperkt zoekquery'spercentage, minimum, maximum, gemiddelde en totaal hebben allemaal dezelfde waarde: het percentage zoekquery's dat gedurende één minuut is beperkt, van het totale aantal zoekquery's.

In de volgende schermopname is het eerste getal het aantal (of het aantal metrische gegevens dat naar het logboek wordt verzonden). Andere aggregaties, die bovenaan worden weergegeven of wanneer u de muisaanwijzer boven de metrische waarde plaatst, omvatten gemiddelde, maximum en totaal. In dit voorbeeld zijn er geen aanvragen verwijderd.

Throttled aggregations

Metrische gegevens verkennen in de portal

Voor een kort overzicht van de huidige getallen ziet u op het tabblad Bewaking op de pagina Overzicht van de service drie metrische gegevens (zoeklatentie, zoekquery's per seconde (per zoekeenheid), percentage beperkte zoekquery's) met vaste intervallen die worden gemeten in uren, dagen en weken, met de optie om het aggregatietype te wijzigen.

Voor een diepere verkenning opent u metrics Explorer vanuit het menu Bewaking , zodat u gegevens kunt lagen, inzoomen en visualiseren om trends of afwijkingen te verkennen. Meer informatie over Metrics Explorer vindt u in deze zelfstudie over het maken van een grafiek met metrische gegevens.

  1. Selecteer in de sectie Bewaking metrische gegevens om de Metrics Explorer te openen met het bereik dat is ingesteld op uw zoekservice.

  2. Kies onder Metrisch een aggregatie in de vervolgkeuzelijst en bekijk de lijst met beschikbare aggregaties voor een voorkeurstype. De aggregatie definieert hoe de verzamelde waarden gedurende elk tijdsinterval worden bemonsterd.

    Metrics explorer for QPS metric

  3. Stel in de rechterbovenhoek het tijdsinterval in.

  4. Kies een visualisatie. De standaardwaarde is een lijndiagram.

  5. Voeg meer aggregaties toe door metrische gegevens toevoegen te kiezen en verschillende aggregaties te selecteren.

  6. Zoom in op een interessegebied in het lijndiagram. Plaats de muisaanwijzer aan het begin van het gebied, selecteer en houd de linkermuisknop ingedrukt, sleep naar de andere kant van het gebied en laat de knop los. De grafiek zoomt in op dat tijdsbereik.

Queryreeksen retourneren die zijn ingevoerd door gebruikers

Wanneer u resourcelogboekregistratie inschakelt, legt het systeem queryaanvragen vast in de tabel AzureDiagnostics . Als vereiste moet u al een bestemming hebben opgegeven voor vastgelegde bewerkingen, ofwel een Log Analytics-werkruimte of een andere opslagoptie.

  1. Selecteer in de sectie Bewaking logboeken om een leeg queryvenster in Log Analytics te openen.

  2. Voer de volgende expressie uit om te zoeken Query.Search naar bewerkingen, waarbij een tabellaire resultatenset wordt geretourneerd die bestaat uit de naam van de bewerking, querytekenreeks, de geïndexeerde query en het aantal gevonden documenten. De laatste twee instructies sluiten queryreeksen uit die bestaan uit een lege of niet-opgegeven zoekopdracht, boven een voorbeeldindex, waardoor de ruis in uw resultaten wordt afgesneden.

       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. Stel desgewenst een kolomfilter in op Query_s om te zoeken naar een specifieke syntaxis of tekenreeks. U kunt bijvoorbeeld filteren op is gelijk aan?api-version=2023-11-01&search=*&%24filter=HotelName.

    Logged query strings

Hoewel deze techniek geschikt is voor ad-hoconderzoek, kunt u met het bouwen van een rapport de queryreeksen samenvoegen en presenteren in een indeling die handiger is voor analyse.

Langlopende query's identificeren

Voeg de duurkolom toe om de getallen voor alle query's op te halen, niet alleen de query's die als metrische waarde worden opgehaald. Als u deze gegevens sorteert, ziet u welke query's het langst duren.

  1. Selecteer in de sectie Bewaking logboeken om een query uit te voeren op logboekgegevens.

  2. Voer de volgende basisquery uit om query's te retourneren, gesorteerd op duur in milliseconden. De langst lopende query's bevinden zich bovenaan.

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

    Sort queries by duration

Een waarschuwing voor metrische gegevens maken

Een metrische waarschuwing bepaalt een drempelwaarde voor het verzenden van een melding of het activeren van een corrigerende actie die u vooraf definieert. U kunt waarschuwingen maken met betrekking tot het uitvoeren van query's, maar u kunt ze ook maken voor resourcestatus, wijzigingen in zoekserviceconfiguratie, uitvoering van vaardigheden en documentverwerking (indexering).

Alle drempelwaarden zijn door de gebruiker gedefinieerd, dus u moet een idee hebben van welk activiteitsniveau de waarschuwing moet activeren.

Voor querybewaking is het gebruikelijk om een metrische waarschuwing te maken voor zoeklatentie en beperkte query's. Als u weet wanneer query's worden verwijderd, kunt u zoeken naar oplossingen die de belasting verminderen of de capaciteit verhogen. Als de vertraagde query's bijvoorbeeld toenemen tijdens het indexeren, kunt u deze uitstellen totdat de queryactiviteit afneemt.

Als u de limieten van een bepaalde configuratie van een replicapartitie pusht, is het instellen van waarschuwingen voor drempelwaarden voor queryvolumes (QPS) ook handig.

  1. Selecteer Onder Bewaking waarschuwingen en selecteer vervolgens Waarschuwingsregel maken.

  2. Selecteer Onder Voorwaarde de optie Toevoegen.

  3. Signaallogica configureren. Kies voor signaaltype metrische gegevens en selecteer vervolgens het signaal.

  4. Nadat u het signaal hebt geselecteerd, kunt u een grafiek gebruiken om historische gegevens te visualiseren voor een weloverwogen beslissing over het instellen van voorwaarden.

  5. Schuif vervolgens omlaag naar waarschuwingslogica. Voor proof-of-concept kunt u een kunstmatig lage waarde opgeven voor testdoeleinden.

  6. Geef vervolgens een actiegroep op of maak deze. Dit is het antwoord dat moet worden aangeroepen wanneer aan de drempelwaarde wordt voldaan. Dit kan een pushmelding of een geautomatiseerd antwoord zijn.

  7. Geef ten slotte waarschuwingsdetails op. Geef een naam op en beschrijf de waarschuwing, wijs een ernstwaarde toe en geef op of de regel moet worden gemaakt in een ingeschakelde of uitgeschakelde status.

Als u een e-mailmelding hebt opgegeven, ontvangt u een e-mailbericht van Microsoft Azure met de onderwerpregel 'Azure: Geactiveerde ernst: 3 <your rule name>'.

Volgende stappen

Als u dit nog niet hebt gedaan, bekijkt u de basisprincipes van de bewaking van zoekservices voor meer informatie over de volledige mogelijkheden voor toezicht.