分享方式:


監視線上端點

Azure Machine Learning 會使用與 Azure 監視器的整合來追蹤及監視線上端點的計量和記錄。 您可以在圖表中檢視計量、比較端點和部署、釘選至 Azure 入口網站儀表板、設定警示、從記錄資料表查詢,以及將記錄推送至支援的目標。 您也可以使用 Application Insights 來分析使用者容器的事件。

  • 計量:對於端點層級計量,例如要求延遲、每分鐘的要求數、每秒的新連線數和網路位元組,您可以向下切入以查看部署層級或狀態層級的詳細資料。 部署層級計量 (例如 CPU/GPU 使用率和記憶體或磁碟使用率) 也可以向下切入至執行個體層級。 Azure 監視器可讓您在圖表中追蹤這些計量,以及設定儀表板和警示以進一步分析。

  • 記錄:您可以將計量傳送至 Log Analytics 工作區,在此處您可以使用 Kusto 查詢語法來查詢記錄。 您也可以將計量傳送至 Azure 儲存體帳戶和/或事件中樞,以進一步處理。 此外,您可以對線上端點相關事件、流量和主控台 (容器) 記錄使用專用記錄資料表。 Kusto 查詢可用來對多個資料表進行複雜的分析和聯結。

  • Application Insights:策展環境包含與 Application Insights 的整合,而您可以在建立線上部署時啟用或停用此整合。 內建計量和記錄會傳送至 Application Insights,您可以使用 Application Insights 的內建功能 (例如即時計量、交易搜尋、失敗和效能) 進行進一步分析。

在本文中,您將了解如何:

  • 選擇正確的方法來檢視及追蹤計量和記錄
  • 檢視受控線上端點的計量
  • 建立您的計量的儀表板
  • 建立計量警示
  • 檢視線上端點的記錄
  • 使用 Application Insights 追蹤計量和記錄

必要條件

  • 部署 Azure Machine Learning 線上端點。
  • 您必須至少擁有端點上的讀取者存取

計量

您可以在 Azure 入口網站中檢視線上端點或部署的計量頁面。 這些計量頁面可以輕鬆存取,只要是透過 Azure Machine Learning Studio 使用者介面中提供的連結即可 (確切位置是在端點頁面的 [詳細資料] 索引標籤中)。 經由這些連結,您將前往端點或部署在 Azure 入口網站中的確切計量頁面。 或者,您也可以進入 Azure 入口網站,以搜尋端點或部署的計量頁面。

若要透過 Studio 中提供的連結來存取計量頁面:

  1. 移至 Azure Machine Learning Studio

  2. 在左側導覽列,選取 [端點] 頁面。

  3. 按一下端點的名稱以選取端點。

  4. 在端點的 [屬性] 區段中選取 [檢視計量],以在 Azure 入口網站中開啟端點的計量頁面。

  5. 在每個可用部署的區段中選取 [檢視計量],以在 Azure 入口網站中開啟部署的計量頁面。

    螢幕擷取畫面,其中顯示如何從工作室 UI 存取端點和部署的計量。

若要直接從 Azure 入口網站存取計量:

  1. 登入 Azure 入口網站

  2. 瀏覽至線上端點或部署資源。

    線上端點和部署是 Azure Resource Manager (ARM) 資源,前往其所屬的資源群組即可找到。 尋找資源類型:Machine Learning 線上端點Machine Learning 線上部署

  3. 在左側資料行中,選取 [計量]

可用的計量

視您選取的資源而定,您看到的計量將會不同。 線上端點和線上部署的計量範圍不同。

端點範圍的計量

類別 計量 REST API 中的名稱 單位 彙總 維度 時間精細度 DS 匯出
交通流量 連線作用中

來自用戶端的作用中並行 TCP 連線總數。
ConnectionsActive 計數 平均 <none> PT1M No
交通流量 每分鐘資料收集錯誤

每分鐘捨棄的資料收集事件數目。
DataCollectionErrorsPerMinute 計數 下限、上限、平均 deploymentreasontype PT1M No
交通流量 每分鐘資料收集活動

每分鐘處理的資料收集事件數目。
DataCollectionEventsPerMinute 計數 下限、上限、平均 deployment, type PT1M No
交通流量 網路位元組

每秒為此端點服務的位元組數。
NetworkBytes BytesPerSecond 平均 <none> PT1M No
交通流量 每秒的新連線數

從用戶端建立的每秒 TCP 新連線的平均數目。
NewConnectionsPerSecond 每秒計數 平均 <none> PT1M No
交通流量 要求延遲

以毫秒表示回應要求所花費的平均完整時間間隔
RequestLatency 毫秒 平均 deployment PT1M Yes
交通流量 要求延遲 P50

由在所選時間期間收集之所有要求延遲值彙總的平均 P50 要求延遲
RequestLatency_P50 毫秒 平均 deployment PT1M Yes
交通流量 要求延遲 P90

由在所選時間期間收集之所有要求延遲值彙總的平均 P90 要求延遲
RequestLatency_P90 毫秒 平均 deployment PT1M Yes
交通流量 要求延遲 P95

由在所選時間期間收集之所有要求延遲值彙總的平均 P95 要求延遲
RequestLatency_P95 毫秒 平均 deployment PT1M Yes
交通流量 要求延遲 P99

由在所選時間期間收集之所有要求延遲值彙總的平均 P99 要求延遲
RequestLatency_P99 毫秒 平均 deployment PT1M Yes
交通流量 每分鐘要求

在一分鐘內傳送至線上端點的要求數目
RequestsPerMinute 計數 平均 deployment, statusCode, statusCodeClass, modelStatusCode PT1M No

頻寬節流

如果受控線上端點超過配額限制,頻寬將受到節流。 如需限制的詳細資訊,請參閱線上端點限制的相關文章。 若要判斷要求是否已節流:

  • 監視「網路位元組」計量
  • 回應結尾會有欄位:ms-azureml-bandwidth-request-delay-msms-azureml-bandwidth-response-delay-ms。 欄位的值為頻寬節流的延遲 (以毫秒為單位)。

如需詳細資訊,請參閱頻寬限制問題

部署範圍的計量

類別 計量 REST API 中的名稱 單位 彙總 維度 時間精細度 DS 匯出
資源 CPU 記憶體使用率百分比

執行個體上的記憶體使用率百分比。 使用量會以一分鐘為間隔提供報告。
CpuMemoryUtilizationPercentage Percent 下限、上限、平均 instanceId PT1M Yes
資源 CPU 使用率百分比

執行個體上的 CPU 使用率百分比。 使用量會以一分鐘為間隔提供報告。
CpuUtilizationPercentage Percent 下限、上限、平均 instanceId PT1M Yes
資源 每分鐘資料收集錯誤

每分鐘捨棄的資料收集事件數目。
DataCollectionErrorsPerMinute 計數 下限、上限、平均 instanceIdreasontype PT1M No
資源 每分鐘資料收集活動

每分鐘處理的資料收集事件數目。
DataCollectionEventsPerMinute 計數 下限、上限、平均 instanceId, type PT1M No
資源 部署容量

部署中的執行個體數目。
DeploymentCapacity 計數 下限、上限、平均 instanceId, State PT1M No
資源 磁碟使用率

執行個體上的磁碟使用率百分比。 使用量會以一分鐘為間隔提供報告。
DiskUtilization Percent 下限、上限、平均 instanceId, disk PT1M Yes
資源 以焦耳表示 GPU 能源

GPU 節點上的間隔能源 (焦耳)。 能源會以一分鐘的間隔提供報告。
GpuEnergyJoules 計數 下限、上限、平均 instanceId PT1M No
資源 GPU 記憶體使用率百分比

執行個體上的 GPU 記憶體使用率百分比。 使用量會以一分鐘為間隔提供報告。
GpuMemoryUtilizationPercentage Percent 下限、上限、平均 instanceId PT1M Yes
資源 GPU 使用率百分比

執行個體上的 GPU 使用率百分比。 使用量會以一分鐘為間隔提供報告。
GpuUtilizationPercentage Percent 下限、上限、平均 instanceId PT1M Yes
交通流量 要求延遲 P50

由在所選時間期間收集之所有要求延遲值彙總的平均 P50 要求延遲
RequestLatency_P50 毫秒 平均 <none> PT1M Yes
交通流量 要求延遲 P90

由在所選時間期間收集之所有要求延遲值彙總的平均 P90 要求延遲
RequestLatency_P90 毫秒 平均 <none> PT1M Yes
交通流量 要求延遲 P95

由在所選時間期間收集之所有要求延遲值彙總的平均 P95 要求延遲
RequestLatency_P95 毫秒 平均 <none> PT1M Yes
交通流量 要求延遲 P99

由在所選時間期間收集之所有要求延遲值彙總的平均 P99 要求延遲
RequestLatency_P99 毫秒 平均 <none> PT1M Yes
交通流量 每分鐘要求

在一分鐘內傳送至線上部署的要求數目
RequestsPerMinute 計數 平均 envoy_response_code PT1M No

建立儀表板和警示

Azure 監視器可讓您根據計量建立儀表板和警示。

建立儀表板以及將查詢視覺化

您可以建立自訂儀表板,並在 Azure 入口網站中視覺化多個來源的計量,包括線上端點的計量。 如需建立儀表板以及將查詢視覺化的詳細資訊,請參閱使用記錄資料的儀表板使用應用程式資料的儀表板

建立警示

您也可以建立自訂警示,以便在線上端點有重要的狀態更新時取得通知:

  1. 在 [計量] 頁面的右上方,選取 [新增警示規則]

    螢幕擷取畫面,其中顯示以紅色方塊括住的 [新增警示規則] 按鈕。

  2. 選取條件名稱以指定何時應觸發警示。

    螢幕擷取畫面,其中顯示以紅色方塊括住的 [設定訊號邏輯] 按鈕。

  3. 選取 [新增動作群組] > [建立動作群組],以指定觸發警示時應採取的動作。

  4. 選擇 [建立警示規則] 以完成建立警示。

如需詳細資訊,請參閱建立 Azure 監視器警示規則

根據計量啟用自動調整

您可以使用 UI 或程式碼,運用計量以啟用部署的自動調整。 使用程式碼 (CLI 或 SDK) 時,可以使用條件中可用計量資料表中所列的計量 ID 來觸發自動調整。 如需詳細資訊,請參閱自動調整線上端點

記錄

線上端點有三個可啟用的記錄:

  • AmlOnlineEndpointTrafficLog:如果您想要查看要求的資訊,可以選擇啟用流量記錄。 以下是一些案例:

    • 如果回應不是 200,請查看 "ResponseCodeReason" 資料行的值,以確認發生了什麼事。 也請檢查線上端點的疑難排解文章「HTTPS 狀態碼」一節中的原因。

    • 您可以從 "ModelStatusCode" 和 "ModelStatusReason" 資料行查看模型的回應碼和回應原因。

    • 您想要檢查要求的持續時間,例如總持續時間、要求/回應持續時間,以及網路節流所造成的延遲。 您可以從記錄中加以檢查,以查看分解延遲。

    • 如果您想要檢查最近有多少要求或失敗的要求。 您也可以啟用記錄。

  • AmlOnlineEndpointConsoleLog:包含容器輸出至主控台的記錄。 以下是一些案例:

    • 如果容器無法啟動,主控台記錄或許可用於偵錯。

    • 監視容器行為,並確定已正確處理所有要求。

    • 在主控台記錄檔中寫入要求識別碼。 將 Log Analytics 工作區中的要求識別碼、AmlOnlineEndpointConsoleLog 和 AmlOnlineEndpointTrafficLog 聯結,可以追蹤從線上端點的網路進入點到容器的要求。

    • 您也可以使用此記錄進行效能分析,以判斷模型處理每個要求所需的時間。

  • AmlOnlineEndpointEventLog:包含關於容器生命週期的事件資訊。 目前,我們提供下列事件種類的相關資訊:

    名稱 訊息
    輪詢 輪詢重新啟動失敗的容器
    已提取 機器上已有容器映像「<IMAGE_NAME>」
    正在終止 容器推斷伺服器失敗的即時性探查將會重新啟動
    建立時間 已建立容器映像擷取器
    建立時間 已建立容器推斷伺服器
    建立時間 已建立容器模型掛接
    LivenessProbeFailed 活躍度探查失敗:<FAILURE_CONTENT>
    ReadinessProbeFailed 整備度探查失敗: <FAILURE_CONTENT>
    已開始 已啟動的容器映像擷取器
    已開始 已啟動的容器推斷伺服器
    已開始 已啟動的容器模型掛接
    正在終止 正在停止容器推斷伺服器
    正在終止 停止容器模型掛接

如何啟用/停用記錄

重要

使用 Azure Log Analytics 記錄。 如果您目前沒有 Log Analytics 工作區,您可以使用 Azure 入口網站中建立 Log Analytics 工作區中的步驟來建立一個工作區。

  1. Azure 入口網站中,移至包含端點的資源群組,然後選取端點。

  2. 從頁面左側的 [監視] 區段,選取 [診斷設定],然後選取 [新增設定]

  3. 選取要啟用的記錄類別、選取 [傳送至 Log Analytics 工作區],然後選取要使用的 Log Analytics 工作區。 最後,輸入診斷設定名稱,然後選取 [儲存]

    螢幕擷取畫面,其中顯示診斷設定對話方塊。

    重要

    最多可能需要一小時才能啟用 Log Analytics 工作區的連線。 請等候一小時,再繼續進行後續步驟。

  4. 將評分要求提交至端點。 此活動應該會在記錄中建立項目。

  5. 從線上端點屬性或 Log Analytics 工作區中,從畫面左側選取 [記錄]

  6. 關閉自動開啟的 [查詢] 對話方塊,然後按兩下 AmlOnlineEndpointConsoleLog。 如果沒有看到該選項,請使用 [搜尋] 欄位。

    螢幕擷取畫面,其中顯示記錄查詢。

  7. 選取執行

    螢幕擷取畫面,其中顯示執行查詢後的結果。

範例查詢

您可以在檢視記錄時,在 [查詢] 索引標籤上找到範例查詢。 搜尋線上端點以尋找範例查詢。

螢幕擷取畫面,其中顯示範例查詢。

記錄資料行細節

下表提供每個記錄檔中所儲存資料的詳細資料:

AmlOnlineEndpointTrafficLog

屬性 說明
方法 來自用戶端的要求方法。
路徑 來自用戶端的要求路徑。
SubscriptionId 線上端點的機器學習訂用帳戶識別碼。
AzureMLWorkspaceId 線上端點的機器學習工作區識別碼。
AzureMLWorkspaceName 線上端點的機器學習工作區名稱。
EndpointName 線上端點的名稱。
DeploymentName 線上部署的名稱。
通訊協定 要求的通訊協定。
ResponseCode 傳回給用戶端的最終回應碼。
ResponseCodeReason 傳回給用戶端的最終回應碼原因。
ModelStatusCode 模型的回應狀態碼。
ModelStatusReason 來自模型的回應狀態原因。
RequestPayloadSize 從用戶端收到的位元組總數。
ResponsePayloadSize 傳回給用戶端的總位元組數。
UserAgent 要求的使用者代理程式標頭,包含註解,但截斷為最多 70 個字元。
XRequestId Azure Machine Learning 針對內部追蹤所產生的要求識別碼。
XMSClientRequestId 用戶端所產生的追蹤識別碼。
TotalDurationMs 從要求開始時間到傳送回用戶端的最後一個回應位元組的持續時間 (以毫秒為單位)。 如果用戶端中斷連線,其會測量從開始時間到用戶端中斷連線時間。
RequestDurationMs 從要求開始時間到用戶端所接收要求最後一個位元組的持續時間 (以毫秒為單位)。
ResponseDurationMs 從要求開始時間到從模型讀取的第一個回應位元組的持續時間 (以毫秒為單位)。
RequestThrottlingDelayMs 要求資料傳輸因為網路節流而延遲的毫秒數。
ResponseThrottlingDelayMs 回應資料傳輸因為網路節流而延遲的毫秒數。

AmlOnlineEndpointConsoleLog

屬性 說明
TimeGenerated 產生記錄時的時間戳記 (UTC)。
OperationName 與記錄相關聯的作業。
InstanceId 產生此記錄檔記錄之執行個體的識別碼。
DeploymentName 與記錄檔記錄相關聯的部署名稱。
ContainerName 產生記錄的容器名稱。
訊息 記錄的內容。

AmlOnlineEndpointEventLog

屬性 說明
TimeGenerated 產生記錄時的時間戳記 (UTC)。
OperationName 與記錄相關聯的作業。
InstanceId 產生此記錄檔記錄之執行個體的識別碼。
DeploymentName 與記錄檔記錄相關聯的部署名稱。
名稱 事件的名稱。
訊息 事件的內容。

使用 Application Insights

策展環境包含與 Application Insights 的整合,而您可以在建立線上部署時啟用或停用此整合。 內建計量和記錄會傳送至 Application Insights,您可以使用 Application Insights 的內建功能 (例如即時計量、交易搜尋、失敗和效能) 進行進一步分析。

請參閱 Application Insights 概觀以深入了解。

在 Studio 中,您可以使用線上端點頁面上的 [監視] 索引標籤來查看受控線上端點的高階活動監視圖表。 若要使用監視索引標籤,您必須在建立端點時選取 [啟用 Application Insight 診斷和資料收集]

螢幕擷取畫面,其中顯示如何在工作室中監視端點層級計量。