Monitorowanie żądań zapytań w usłudze Azure AI Search

W tym artykule wyjaśniono, jak mierzyć wydajność zapytań i wolumin przy użyciu wbudowanych metryk i rejestrowania zasobów. Wyjaśniono również, jak uzyskać ciągi zapytania wprowadzone przez użytkowników aplikacji.

W witrynie Azure Portal przedstawiono podstawowe metryki dotyczące opóźnienia zapytań, ładowania zapytań (QPS) i ograniczania przepustowości. Dane historyczne, do których można uzyskać dostęp do tych metryk w portalu przez 30 dni. Aby dłużej przechowywać dane operacyjne i ciągi zapytań, należy dodać ustawienie diagnostyczne określające opcję przechowywania dla utrwalania zarejestrowanych operacji i metryk. Zalecamy użycie obszaru roboczego usługi Log Analytics jako miejsca docelowego dla zarejestrowanych operacji. Zapytania Kusto i eksploracja danych są przeznaczone dla obszaru roboczego usługi Log Analytics.

Warunki, które maksymalizują integralność pomiarów danych, obejmują:

  • Użyj usługi rozliczanej (usługi utworzonej w warstwie Podstawowa lub Standardowa). Bezpłatna usługa jest udostępniana przez wielu subskrybentów, co wprowadza pewną zmienność podczas zmiany obciążenia.

  • Jeśli to możliwe, użyj pojedynczej repliki i partycji, aby utworzyć zawarte i izolowane środowisko. Jeśli używasz wielu replik, metryki zapytań są uśrednione w wielu węzłach, co może zmniejszyć dokładność wyników. Podobnie wiele partycji oznacza, że dane są podzielone, z możliwością, że niektóre partycje mogą mieć różne dane, jeśli indeksowanie jest również w toku. Podczas dostosowywania wydajności zapytań pojedynczy węzeł i partycja dają bardziej stabilne środowisko do testowania.

Napiwek

Dzięki dodatkowemu kodowi po stronie klienta i Szczegółowe informacje aplikacji możesz również przechwycić dane przeglądania kliknięć, aby uzyskać lepszy wgląd w to, co przyciąga zainteresowanie użytkowników aplikacji. Aby uzyskać więcej informacji, zobacz Search traffic analytics (Analiza ruchu wyszukiwania).

Wolumin zapytań (QPS)

Wolumin jest mierzony jako zapytania wyszukiwania na sekundę (QPS), wbudowana metryka, która może być zgłaszana jako średnia, liczba, minimalna lub maksymalna wartość zapytań wykonywanych w ciągu jednej minuty. Interwały jednominutowe (TimeGrain = "PT1M") dla metryk są stałe w systemie.

Często zapytania są wykonywane w milisekundach, więc w metrykach są wyświetlane tylko zapytania, które miarują się w sekundach.

Typ agregacji opis
Średnia Średnia liczba sekund w ciągu minuty, w której wystąpiło wykonanie zapytania.
Count Liczba metryk emitowanych do dziennika w ciągu jednej minuty.
Maksymalnie Największa liczba zapytań wyszukiwania na sekundę zarejestrowanych w ciągu minuty.
Minimum Najniższa liczba zapytań wyszukiwania na sekundę zarejestrowanych w ciągu minuty.
Sum Suma wszystkich zapytań wykonanych w ciągu minuty.

Na przykład w ciągu jednej minuty może istnieć wzorzec podobny do następującego: jedna sekunda dużego obciążenia, która jest maksymalną wartością dla parametru SearchQueriesPerSecond, a następnie 58 sekund średniego obciążenia, a na koniec jedną sekundę z tylko jednym zapytaniem, co jest minimum.

Inny przykład: jeśli węzeł emituje 100 metryk, gdzie wartość każdej metryki wynosi 40, wartość "Count" to 100, "Sum" to 4000, "Average" to 40, a wartość "Max" to 40.

Wydajność zapytań

Wydajność zapytań dla całej usługi jest mierzona jako opóźnienie wyszukiwania (czas ukończenia zapytania) i ograniczone zapytania, które zostały porzucone w wyniku rywalizacji o zasoby.

Opóźnienie wyszukiwania

Typ agregacji Opóźnienie
Średnia Średni czas trwania zapytania w milisekundach.
Count Liczba metryk emitowanych do dziennika w ciągu jednej minuty.
Maksymalnie Najdłuższe uruchomione zapytanie w przykładzie.
Minimum Najkrótsze uruchomione zapytanie w przykładzie.
Łącznie Łączny czas wykonywania wszystkich zapytań w przykładzie, wykonywany w interwale (minuta).

Rozważmy następujący przykład metryk opóźnienia wyszukiwania: próbkowano 86 zapytań ze średnim czasem trwania wynoszącym 23,26 milisekund. Co najmniej 0 wskazuje, że niektóre zapytania zostały porzucone. Najdłuższe uruchomione zapytanie trwało 1000 milisekund. Całkowity czas wykonywania wynosił 2 sekundy.

Latency aggregations

Zapytania z ograniczeniami

Zapytania z ograniczeniami odnoszą się do zapytań, które są porzucane zamiast przetwarzane. W większości przypadków ograniczanie przepustowości jest normalną częścią uruchamiania usługi. Niekoniecznie jest to wskazanie, że coś jest nie tak.

Ograniczanie występuje, gdy liczba żądań w wykonaniu przekracza pojemność. Może wystąpić wzrost liczby żądań ograniczonych, gdy replika zostanie wyjęta z rotacji lub podczas indeksowania. Żądania zapytań i indeksowania są obsługiwane przez ten sam zestaw zasobów.

Usługa określa, czy żądania mają być porzucane na podstawie użycia zasobów. Procent zużywanych zasobów w pamięci, procesora CPU i operacji we/wy dysku jest średni w danym okresie. Jeśli ta wartość procentowa przekroczy próg, wszystkie żądania do indeksu są ograniczane do momentu zmniejszenia liczby żądań.

W zależności od klienta żądanie ograniczone jest wskazane na następujące sposoby:

  • Usługa zwraca błąd "You are sending too many requests. Please try again later."
  • Usługa zwraca kod błędu 503 wskazujący, że usługa jest obecnie niedostępna.
  • Jeśli używasz portalu (na przykład Eksploratora wyszukiwania), zapytanie zostanie usunięte w trybie dyskretnym i musisz ponownie wybrać pozycję Wyszukaj .

Aby potwierdzić ograniczone zapytania, użyj metryki Zapytania wyszukiwania z ograniczeniami. Metryki można eksplorować w portalu lub utworzyć metrykę alertu zgodnie z opisem w tym artykule. W przypadku zapytań, które zostały porzucone w interwale próbkowania, użyj opcji Suma , aby uzyskać procent zapytań, które nie zostały wykonane.

Typ agregacji Ograniczanie przepływności
Średnia Procent zapytań porzuconych w interwale.
Count Liczba metryk emitowanych do dziennika w ciągu jednej minuty.
Maksymalnie Procent zapytań porzuconych w interwale.
Minimum Procent zapytań porzuconych w interwale.
Łącznie Procent zapytań porzuconych w interwale.

W przypadku kwerend wyszukiwania z ograniczeniami wartość procentowa, minimalna, maksymalna, średnia i suma mają tę samą wartość: procent zapytań wyszukiwania, które zostały ograniczone, z łącznej liczby zapytań wyszukiwania w ciągu jednej minuty.

Na poniższym zrzucie ekranu pierwsza liczba to liczba (lub liczba metryk wysyłanych do dziennika). Inne agregacje, które są wyświetlane u góry lub po umieszczeniu wskaźnika myszy na metryce, obejmują średnią, maksymalną i całkowitą. W tym przykładzie nie usunięto żadnych żądań.

Throttled aggregations

Eksplorowanie metryk w portalu

Aby szybko zapoznać się z bieżącymi liczbami, karta Monitorowanie na stronie Przegląd usługi zawiera trzy metryki (opóźnienie wyszukiwania, zapytania wyszukiwania na sekundę (na jednostkę wyszukiwania), Wartość procentowa ograniczonych zapytań wyszukiwania) w stałych interwałach mierzonych w godzinach, dniach i tygodniach z opcją zmiany typu agregacji.

Aby dokładniej eksplorować, otwórz eksploratora metryk z menu Monitorowanie , aby umożliwić warstwowanie, powiększanie i wizualizowanie danych w celu eksplorowania trendów lub anomalii. Dowiedz się więcej o Eksploratorze metryk, wykonując czynności z tego samouczka dotyczące tworzenia wykresu metryk.

  1. W sekcji Monitorowanie wybierz pozycję Metryki, aby otworzyć eksploratora metryk z zakresem ustawionym na usługę wyszukiwania.

  2. W obszarze Metryka wybierz jedną z listy rozwijanej i przejrzyj listę dostępnych agregacji dla preferowanego typu. Agregacja definiuje sposób próbkowania zebranych wartości w każdym interwale czasu.

    Metrics explorer for QPS metric

  3. W prawym górnym rogu ustaw interwał czasu.

  4. Wybierz wizualizację. Wartość domyślna to wykres liniowy.

  5. Więcej agregacji warstwy, wybierając pozycję Dodaj metryki i wybierając różne agregacje.

  6. Powiększ obszar zainteresowania wykresu liniowego. Umieść wskaźnik myszy na początku obszaru, zaznacz i przytrzymaj lewy przycisk myszy, przeciągnij na drugą stronę obszaru i zwolnij przycisk. Wykres powiększa ten zakres czasu.

Zwracanie ciągów zapytania wprowadzonych przez użytkowników

Po włączeniu rejestrowania zasobów system przechwytuje żądania zapytań w tabeli AzureDiagnostics . Wstępnie wymagane jest określenie miejsca docelowego dla zarejestrowanych operacji — obszaru roboczego usługi Log Analytics lub innej opcji magazynu.

  1. W sekcji Monitorowanie wybierz pozycję Dzienniki , aby otworzyć puste okno zapytania w usłudze Log Analytics.

  2. Uruchom następujące wyrażenie, aby wykonać operacje wyszukiwania Query.Search , zwracając tabelaryczny zestaw wyników składający się z nazwy operacji, ciągu zapytania, zapytań dotyczących indeksu i liczby znalezionych dokumentów. Ostatnie dwie instrukcje wykluczają ciągi zapytania składające się z pustego lub nieokreślonego wyszukiwania w przykładowym indeksie, który zmniejsza szum w wynikach.

       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. Opcjonalnie ustaw filtr Kolumna dla Query_s , aby wyszukać określoną składnię lub ciąg. Na przykład można filtrować wartość równą?api-version=2023-11-01&search=*&%24filter=HotelName.

    Logged query strings

Chociaż ta technika działa na potrzeby badania ad hoc, utworzenie raportu umożliwia konsolidację i przedstawienie ciągów zapytania w układzie bardziej sprzyja analizie.

Identyfikowanie długotrwałych zapytań

Dodaj kolumnę czasu trwania, aby uzyskać liczby dla wszystkich zapytań, a nie tylko tych, które są pobierane jako metryka. Sortowanie tych danych pokazuje, które zapytania zajmują najdłuższe zakończenie.

  1. W sekcji Monitorowanie wybierz pozycję Dzienniki , aby wykonywać zapytania dotyczące informacji dziennika.

  2. Uruchom następujące zapytanie podstawowe, aby zwrócić zapytania posortowane według czasu trwania w milisekundach. Najdłużej działające zapytania znajdują się u góry.

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

    Sort queries by duration

Tworzenie alertu dotyczącego metryki

Alert metryki ustanawia próg wysyłania powiadomienia lub wyzwalania akcji naprawczej zdefiniowanej z wyprzedzeniem. Możesz tworzyć alerty związane z wykonywaniem zapytań, ale można je również utworzyć na potrzeby kondycji zasobów, zmian konfiguracji usługi wyszukiwania, wykonywania umiejętności i przetwarzania dokumentów (indeksowania).

Wszystkie progi są definiowane przez użytkownika, dlatego należy mieć pojęcie o tym, jaki poziom działania powinien wyzwolić alert.

W przypadku monitorowania zapytań często tworzy się alert dotyczący metryk dla opóźnień wyszukiwania i zapytań z ograniczeniami. Jeśli wiesz, kiedy zapytania są porzucane, możesz wyszukać środki zaradcze, które zmniejszają obciążenie lub zwiększają pojemność. Na przykład jeśli zapytania z ograniczeniami zwiększają się podczas indeksowania, można je odłożyć do momentu ustąpienia działania zapytania.

Jeśli wypychasz limity określonej konfiguracji partycji repliki, pomocne jest również skonfigurowanie alertów dotyczących progów woluminów zapytań (QPS).

  1. W obszarze Monitorowanie wybierz pozycję Alerty, a następnie wybierz pozycję Utwórz regułę alertu.

  2. W obszarze Warunek wybierz pozycję Dodaj.

  3. Konfigurowanie logiki sygnału. W polu Typ sygnału wybierz metryki , a następnie wybierz sygnał.

  4. Po wybraniu sygnału można użyć wykresu do wizualizacji danych historycznych w celu uzyskania świadomej decyzji dotyczącej sposobu kontynuowania konfigurowania warunków.

  5. Następnie przewiń w dół do pozycji Logika alertu. W celu weryfikacji koncepcji można określić sztucznie niską wartość na potrzeby testowania.

  6. Następnie określ lub utwórz grupę akcji. Jest to odpowiedź, która ma być wywoływana po osiągnięciu progu. Może to być powiadomienie wypychane lub automatyczna odpowiedź.

  7. Na koniec określ szczegóły alertu. Nazwij i opisz alert, przypisz wartość ważności i określ, czy chcesz utworzyć regułę w stanie włączonym, czy wyłączonym.

Jeśli określono powiadomienie e-mail, otrzymasz wiadomość e-mail z "Microsoft Azure" z wierszem tematu "Azure: Aktywowana ważność: 3 <your rule name>".

Następne kroki

Jeśli jeszcze tego nie zrobiono, zapoznaj się z podstawami monitorowania usługi wyszukiwania, aby dowiedzieć się więcej o pełnym zakresie możliwości nadzoru.