如何監視 Azure Cosmos DB 容器或帳戶中作業的伺服器端延遲

適用於:NoSQL MongoDB Cassandra Gremlin Table

適用於 Azure Cosmos DB 的 Azure 監視器提供計量檢視,以監視您的帳戶和建立儀表板。 預設會收集 Azure Cosmos DB 計量,此功能不需要您明確啟用或設定任何項目。 伺服器端延遲直接計量和伺服器端延遲閘道計量可讓您利用兩種不同的連線模式來檢視某項作業的伺服器端延遲。 如果您的要求作業處於閘道連線模式,請使用伺服器端延遲閘道計量。 如果您的要求作業楚瑜直接連線模式,請使用伺服器端延遲直接計量。 Azure Cosmos DB 為具有直接連線能力的點讀取/寫入作業提供小於 10 毫秒的 SLA。 針對點讀取和點寫入作業,SLA 會如 SLA 文件中所述進行計算。 如需連線模式的詳細資訊,請參閱連線模式一文。

下表指出哪些 API 支援伺服器端延遲計量 (直接與閘道):

API 伺服器端延遲直接 伺服器端延遲閘道
SQL
MongoDB
Cassandra
Gremlin
Table

如果您發現下列點作業的延遲異常高,您可以監視伺服器端延遲計量:

  • 具有分割區索引鍵和識別碼的 GET 或 SET 作業
  • 讀取或寫入作業,或是
  • 查詢

您可以查詢診斷記錄來查看傳回的資料大小。 如果您發現查詢作業的延遲持續很高,您應該查詢診斷記錄中是否使用了較高的輸送量或 RU/秒。 伺服器端延遲會顯示在將資料傳回給用戶端之前,於後端基礎結構上所花費的時間量。 請務必查看此計量,以排除任何後端延遲問題。

檢視伺服器端延遲計量

  1. 登入 Azure 入口網站

  2. 從左側導覽列選取 [監視],然後選取 [計量]

    Metrics pane in Azure Monitor

  3. 從 [計量] 窗格 >選取一個資源>選擇必要的 [訂用帳戶] 和 [資源群組]。 在 [資源類型] 中,選取 [Azure Cosmos DB 帳戶],然後選擇其中一個現有的 Azure Cosmos DB 帳戶並選取 [套用]

    Select the account scope to view metrics

  4. 接下來,如果您的作業處於閘道連線模式,請從可用的計量清單中選取 [伺服器端延遲閘道] 計量。 如果您的作業處於直接連線模式,請選取 [伺服器端延遲直接] 計量。 若要深入了解此清單中所有可用的計量,請參閱依類別區分的計量一文。 在此範例中,讓我們選取 [伺服器端延遲閘道] 和 [平均] 作為彙總值。 除了這些詳細資料之外,您也可以選取計量的 [時間範圍] 和 [時間細微性]。 在 [最大值] 中,您可以檢視過去 30 天的計量。 套用篩選之後,圖表就會根據您的篩選條件來顯示。 您可以在所選期間內,每隔 5 分鐘查看閘道連線模式中的伺服器端延遲。

    Choose the Server-Side Latency Gateway metric from the Azure portal

伺服器端延遲的篩選

您也可以篩選計量,讓圖表依據特定的 CollectionNameDatabaseNameOperationTypeRegionPublicAPIType 來顯示。

若要篩選計量,請選取 [新增篩選],然後選擇必要的屬性 (例如 PublicAPIType) 並選取值 [Sql]。 針對 [OperationType],選取 [套用分割]。 然後,此圖表會顯示在所選期間內,閘道連線模式中不同作業的伺服器端延遲。 透過預存程序執行的作業並不會記錄,因此其無法在 OperationType 計量下提供。

每項作業的 [伺服器端延遲閘道] 計量會如下圖所示:

Filters for server-side latency gateway metrics

您也可以使用 [套用分割] 選項來將計量分組。

注意

進入 Azure Cosmos DB 的要求不一定會以容器為目標。 例如,您可以在全域散發的帳戶內建立資料庫,而系統仍會針對伺服器端延遲計量記錄要求。 系統會記錄要求,因為其需要花時間才能建立資料庫資源,但其並沒有以容器為目標。 如果您看到 CollectionName 計量的值是 <empty>,這表示目標不是容器,而是 Azure Cosmos DB 中的另一個資源。

作為因應措施,您可以主動將計量篩選至特定容器 (CollectionName),以排除不是特定於查詢主體之容器的要求。

下一步