共用方式為


監視 Azure AI 搜尋服務中的查詢要求

本文說明如何使用內建計量和資源記錄來測量查詢效能和磁碟區。 它也會說明如何取得應用程式使用者輸入的查詢字串。

Azure 入口網站顯示有關查詢延遲、查詢負載 (QPS) 和節流的基本計量。 對於饋送至這些計量的歷程記錄資料,在入口網站中可存取 30 天。 若要延長保留期,或報告操作資料和查詢字串,您必須新增診斷設定,以指定保存記錄作業和計量的儲存體選項。 我們建議使用 Log Analytics工作區作為記錄作業的目的地。 Kusto 查詢和資料探索會以 Log Analytics 工作區為目標。

最大化資料量值完整性的條件包括:

  • 使用可計費的服務 (在基本或標準層建立的服務)。 免費服務是由多個訂閱者共用,這會在負載移位時引進一定數量的變動性。

  • 盡可能使用單一複本和分割區來建立包含且隔離的環境。 如果您使用多個複本,查詢計量會跨多個節點平均,這可能會降低結果的精確度。 同樣地,多個分割區表示資料已分割,如果索引編製也正在進行中,某些資料分割可能會有不同的資料。 調整查詢效能時,單一節點和資料分割可提供更穩定的環境進行測試。

提示

使用額外的用戶端程式碼和 Application Insights,您也可以擷取點選連結資料,以深入了解吸引應用程式使用者興趣的項目。 如需詳細資訊,請參閱搜尋流量分析

查詢磁碟區 (QPS)

磁碟區會測量每秒搜尋查詢 (QPS),這是一個內建計量,可報告一分鐘視窗內所執行查詢的平均、計數、最小值或最大值。 系統內一分鐘間隔的計量 (TimeGrain = "PT1M") 是固定的。

若要深入了解 SearchQueriesPerSecond 計量,請參閱 每秒搜尋查詢

查詢效能

整個服務的查詢效能會測量為搜尋延遲節流查詢

搜尋延遲

搜尋延遲表示查詢需要多久的時間才能完成。 若要深入了解 SearchLatency 計量,請參閱 搜尋延遲

請考慮下列搜尋延遲計量的範例:已取樣 86 個查詢,平均持續時間為 23.26 毫秒。 最小值 0 表示已卸除一些查詢。 執行時間最長的查詢需要 1000 毫秒才能完成。 總執行時間為 2 秒。

延遲彙總

節流查詢

節流查詢是指已卸除但未處理的查詢。 在大部分情況下,節流是執行服務正常的一部分。 這不一定表示發生錯誤。 若要深入了解 ThrottledSearchQueriesPercentage 計量,請參閱 節流搜尋查詢百分比

在下列螢幕擷取畫面中,第一個數字是計數 (或傳送至記錄的計量數字)。 顯示在頂端或停留在計量上方的其他彙總包括平均值、最大值和總計。 在此範例中,不會卸除任何要求。

節流的彙總

在入口網站中檢視計量

如需快速查看目前的數字,[服務概觀] 頁面上的 [監視] 索引標籤會顯示三個計量 (搜尋延遲每秒搜尋查詢 (每個搜尋單位)節流搜尋查詢百分比) 以小時、天和周為單位的固定間隔,以及變更匯總類型的選項。

若要進行更深入的探索,請從 [監視] 功能表開啟計量總管,讓您可以分層、放大及視覺化資料,以探索趨勢或異常狀況。 完成建立計量圖表教學課程,以深入了解計量瀏覽器。

  1. 在 [監視] 區段底下,選取 [計量] 以開啟計量總管,並將範圍設定為搜尋服務。

  2. 在 [計量] 底下,從下拉式清單中選擇一個,並檢閱偏好型別的可用匯總清單。 該彙總會定義收集的值將如何在每個時間間隔內取樣。

    QPS 計量的計量瀏覽器

  3. 在右上角設定時間間隔。

  4. 選擇視覺效果。 預設值為折線圖。

  5. 選擇 [新增計量] 並選取不同的彙總,以分層更多彙總。

  6. 放大折線圖上感興趣的區域。 將滑鼠指標放在區域的開頭,選取並按住滑鼠左鍵,拖曳至區域的另一端,再放開按鈕。 圖表將會放大該時間範圍。

傳回使用者輸入的查詢字串

當您啟用資源記錄時,系統會擷取 AzureDiagnostics 資料表中的查詢要求。 作為必要條件,您必須已指定記錄作業的目的地 (Log Analytics 工作區或其他儲存體選項)。

  1. 在 [監視] 區段底下,選取 [記錄] 以在 Log Analytics 中開啟空白查詢視窗。

  2. 執行下列運算式來搜尋 Query.Search 作業,傳回表格式結果集,其中包含作業名稱、查詢字串、查詢索引,以及找到的文件數目。 最後兩個陳述式會排除包含空白或未指定搜尋的查詢字串,而樣本索引會減少結果中的雜訊。

       AzureDiagnostics
    | project OperationName, Query_s, IndexName_s, Documents_d
    | where OperationName == "Query.Search"
    | where Query_s != "?api-version=2023-11-01&search=*"
    | where IndexName_s != "realestate-us-sample-index"
    
  3. 選擇性在 Query_s 上設定資料行篩選,以搜尋特定語法或字串。 例如,您可以將 [等於] ?api-version=2023-11-01&search=*&%24filter=HotelName作為篩選條件。

    記錄的查詢字串

雖然這項技術適用於臨機操作調查,但建置報表可讓您將查詢字串合併並呈現在配置中更方便分析。

識別執行時間長的查詢

新增持續時間資料行可取得所有查詢的數量,而不僅僅是選取為計量的查詢。 透過排序此資料,可以顯示哪些查詢需要最長的時間才能完成。

  1. 在 [監視] 區段底下,選取 [記錄] 以查詢記錄資訊。

  2. 執行下列基本查詢以傳回查詢,並以毫秒為單位依持續時間排序。 執行時間最長的查詢在頂端。

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

    依持續時間排序查詢

建立計量警示

計量警示會針對傳送通知或觸發您事先定義的矯正措施建立閾值。 您可以建立與查詢執行相關的警示,但您也可以針對資源健康情況、搜尋服務組態變更、技能執行和文件處理 (編製索引) 建立警示。

所有閾值都是使用者定義的,因此您應該了解什麼活動層級應該觸發警示。

針對查詢監視,系統通常會為搜尋延遲和節流查詢建立計量警示。 如果您知道查詢是何時卸除的,您可以尋找可減少負載或增加容量的解決方式。 例如,如果在編製索引期間增加節流查詢,您可以將它延後,直到查詢活動趨緩為止。

如果您超出特定復本分割區設定的限制時,設定查詢磁碟區閾值 (QPS) 的警示也很有用。

  1. 在 [監視] 下,選取 [警示],然後選取 [建立警示規則]

  2. 在 [條件] 底下,選取 [新增]

  3. 設定訊號邏輯。 針對訊號型別,選擇 [計量],並選取訊號。

  4. 選取訊號之後,您可以使用圖表將歷程記錄資料視覺化,以取得如何繼續設定條件的明智決策。

  5. 接下來,向下捲動至 [警示邏輯]。 您可以針對測試目的指定人工性低值,作為概念證明。

  6. 接下來,指定或建立動作群組。 這是符合閾值時要叫用的回應。 這可能是推播通知或自動化回應。

  7. 最後,指定 [警示詳細資料]。 命名並描述警示、指派嚴重性值,並指定是否要在啟用或停用狀態中建立規則。

如果您指定電子郵件通知,您會收到來自「Microsoft Azure」的電子郵件,主旨行為 「Azure 啟動嚴重性:3 <your rule name>」。

下一步

如果您尚未這麼做,請檢閱搜尋服務監視的基本概念,以了解完整的監督功能範圍。