監視線上端點
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 中提供的連結來存取計量頁面:
在左側導覽列,選取 [端點] 頁面。
按一下端點的名稱以選取端點。
在端點的 [屬性] 區段中選取 [檢視計量],以在 Azure 入口網站中開啟端點的計量頁面。
在每個可用部署的區段中選取 [檢視計量],以在 Azure 入口網站中開啟部署的計量頁面。
若要直接從 Azure 入口網站存取計量:
登入 Azure 入口網站。
瀏覽至線上端點或部署資源。
線上端點和部署是 Azure Resource Manager (ARM) 資源,前往其所屬的資源群組即可找到。 尋找資源類型:Machine Learning 線上端點和 Machine Learning 線上部署。
在左側資料行中,選取 [計量]。
可用的計量
視您選取的資源而定,您看到的計量將會不同。 線上端點和線上部署的計量範圍不同。
端點範圍的計量
類別 | 計量 | REST API 中的名稱 | 單位 | 彙總 | 維度 | 時間精細度 | DS 匯出 |
---|---|---|---|---|---|---|---|
交通流量 | 連線作用中 來自用戶端的作用中並行 TCP 連線總數。 |
ConnectionsActive |
計數 | 平均 | <none> | PT1M | No |
交通流量 | 每分鐘資料收集錯誤 每分鐘捨棄的資料收集事件數目。 |
DataCollectionErrorsPerMinute |
計數 | 下限、上限、平均 | deployment }, |
PT1M | No |
交通流量 | 每分鐘資料收集活動 每分鐘處理的資料收集事件數目。 |
DataCollectionEventsPerMinute |
計數 | 下限、上限、平均 | % | 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 |
計數 | 平均 | PT1M | No |
頻寬節流
如果受控線上端點超過配額限制,頻寬將受到節流。 如需限制的詳細資訊,請參閱線上端點限制的相關文章。 若要判斷要求是否已節流:
- 監視「網路位元組」計量
- 回應結尾會有欄位:
ms-azureml-bandwidth-request-delay-ms
和ms-azureml-bandwidth-response-delay-ms
。 欄位的值為頻寬節流的延遲 (以毫秒為單位)。
如需詳細資訊,請參閱頻寬限制問題。
部署範圍的計量
類別 | 計量 | REST API 中的名稱 | 單位 | 彙總 | 維度 | 時間精細度 | DS 匯出 |
---|---|---|---|---|---|---|---|
資源 | CPU 記憶體使用率百分比 執行個體上的記憶體使用率百分比。 使用量會以一分鐘為間隔提供報告。 |
CpuMemoryUtilizationPercentage |
Percent | 下限、上限、平均 | instanceId |
PT1M | Yes |
資源 | CPU 使用率百分比 執行個體上的 CPU 使用率百分比。 使用量會以一分鐘為間隔提供報告。 |
CpuUtilizationPercentage |
Percent | 下限、上限、平均 | instanceId |
PT1M | Yes |
資源 | 每分鐘資料收集錯誤 每分鐘捨棄的資料收集事件數目。 |
DataCollectionErrorsPerMinute |
計數 | 下限、上限、平均 | instanceId }, |
PT1M | No |
資源 | 每分鐘資料收集活動 每分鐘處理的資料收集事件數目。 |
DataCollectionEventsPerMinute |
計數 | 下限、上限、平均 | % | PT1M | No |
資源 | 部署容量 部署中的執行個體數目。 |
DeploymentCapacity |
計數 | 下限、上限、平均 | % | PT1M | No |
資源 | 磁碟使用率 執行個體上的磁碟使用率百分比。 使用量會以一分鐘為間隔提供報告。 |
DiskUtilization |
Percent | 下限、上限、平均 | % | 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 入口網站中視覺化多個來源的計量,包括線上端點的計量。 如需建立儀表板以及將查詢視覺化的詳細資訊,請參閱使用記錄資料的儀表板和使用應用程式資料的儀表板。
建立警示
您也可以建立自訂警示,以便在線上端點有重要的狀態更新時取得通知:
在 [計量] 頁面的右上方,選取 [新增警示規則]。
選取條件名稱以指定何時應觸發警示。
選取 [新增動作群組] > [建立動作群組],以指定觸發警示時應採取的動作。
選擇 [建立警示規則] 以完成建立警示。
如需詳細資訊,請參閱建立 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 工作區中的步驟來建立一個工作區。
在 Azure 入口網站中,移至包含端點的資源群組,然後選取端點。
從頁面左側的 [監視] 區段,選取 [診斷設定],然後選取 [新增設定]。
選取要啟用的記錄類別、選取 [傳送至 Log Analytics 工作區],然後選取要使用的 Log Analytics 工作區。 最後,輸入診斷設定名稱,然後選取 [儲存]。
重要
最多可能需要一小時才能啟用 Log Analytics 工作區的連線。 請等候一小時,再繼續進行後續步驟。
將評分要求提交至端點。 此活動應該會在記錄中建立項目。
從線上端點屬性或 Log Analytics 工作區中,從畫面左側選取 [記錄]。
關閉自動開啟的 [查詢] 對話方塊,然後按兩下 AmlOnlineEndpointConsoleLog。 如果沒有看到該選項,請使用 [搜尋] 欄位。
選取執行。
範例查詢
您可以在檢視記錄時,在 [查詢] 索引標籤上找到範例查詢。 搜尋線上端點以尋找範例查詢。
記錄資料行細節
下表提供每個記錄檔中所儲存資料的詳細資料:
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 診斷和資料收集]。
相關內容
- 了解如何檢視您已部署端點的成本。
- 深入了解計量瀏覽器。