共用方式為


監視 Azure Functions

本文章說明:

  • 您可以為此服務收集的監視資料類型。
  • 分析資料的方式。

附註

如果您已經熟悉此服務和/或 Azure 監視器,只想知道如何分析監視資料,請參閱本文靠近結尾的分析一節。

當您有依賴 Azure 資源的重要應用程式和商務流程時,就需要監視並取得系統的警示。 Azure 監視器服務會從您系統的每個元件收集及彙總計量和記錄。 Azure 監視器讓您能夠檢視可用性、效能及復原能力,並在發生問題時通知您。 您可以使用 Azure 入口網站、PowerShell、Azure CLI、REST API 或用戶端程式庫來設定及檢視監視資料。

深入解析

Azure 中的部分服務在 Azure 入口網站中有內建的監視儀表板,可作為監視服務的起點。 這些儀表板稱為「深入解析」,您可以在 Azure 入口網站中 Azure 監視器的深入解析中樞內找到這些儀表板。

Application Insights

Azure Functions 已內建與 Application Insights 整合,以監視函式執行。 如需如何整合、設定及使用 Application Insights 監視 Azure Functions 的詳細資訊,請參閱下列文章:

資源類型

Azure 會使用資源類型和識別碼的概念來識別訂用帳戶中的所有內容。 資源類型也是 Azure 中所執行每個資源的資源識別碼組成部分。 例如,虛擬機器的一種資源類型是 Microsoft.Compute/virtualMachines。 如需服務及其相關聯資源類型的清單,請參閱資源提供者 (機器翻譯)。

Azure 監視器同樣會依據資源類型將核心監視資料組織成計量和記錄,也稱為「命名空間」。 不同的計量和記錄適用於不同的資源類型。 您的服務可能會與多個資源類型相關聯。

如需 Azure Functions 資源類型的詳細資訊,請參閱 Azure Functions 監視資料參考

資料儲存體

針對 Azure 監視器:

  • 計量資料會儲存在 Azure 監視器計量資料庫中。
  • 記錄資料會儲存在 Azure 監視器記錄存放區中。 Log Analytics 是可查詢此存放區的 Azure 入口網站工具。
  • Azure 活動記錄是個單獨存放區,其介面位於 Azure 入口網站。

您可選擇性地將計量和活動記錄資料路由傳送至 Azure 監視器記錄存放區。 然後,可以使用 Log Analytics 來查詢資料,並將其與其他記錄資料相互關聯。

許多服務可以使用診斷設定,將計量和記錄資料傳送至 Azure 監視器以外的其他儲存位置。 範例包括 Azure 儲存體、託管的合作夥伴系統以及使用事件中樞的非 Azure 合作夥伴系統

如需進一步了解 Azure 監視器如何儲存資料,請參閱 Azure 監視器資料平台

Azure 監視器平台計量

Azure 監視器為大多數服務提供平台計量。 這些計量包括:

  • 針對每個命名空間個別定義。
  • 儲存在 Azure 監視器時間序列計量資料庫中。
  • 輕量且能支援近即時警示。
  • 用來追蹤資源效能的長期變化。

收集:Azure 監視器會自動收集平台計量。 不需要組態。

路由傳送:您也可以將一些平台計量路由傳送至 Azure 監視器記錄/Log Analytics,以便與其他記錄資料一同查詢。 檢查每個計量的 DS 匯出設定,確認您是否可使用診斷設定將計量路由傳送至 Azure 監視器記錄/Log Analytics。

如需 Azure 監視器中所有資源可收集的計量完整清單,請參閱 Azure 監視器中所支援的計量

如需 Azure Functions 可用計量的清單,請參閱 Azure Functions 監視資料參考

附註

當您的函數應用程式在 Linux 執行使用量方案時,無法使用 App Service 計量 (Microsoft.Web/sites)。

Azure 監視器資源記錄

資源記錄提供對 Azure 資源所完成作業的深入解析。 系統會自動產生記錄,但您必須將其路由傳送至 Azure 監視器記錄,才能儲存或查詢這些記錄。 按類別組織記錄。 指定的命名空間可能會有多個資源記錄類別。

收集:您必須先建立「診斷設定」,並將記錄路由傳送至一個或多個位置,才會開始收集和儲存資源記錄。 在建立診斷設定時,您可以指定要收集的記錄類別。 有多種方式可以建立和維護診斷設定,包括透過 Azure 入口網站、程式設計方式,以及 Azure 原則。

路由傳送:建議的預設設定是將資源記錄路由傳送至 Azure 監視器記錄,以便與其他記錄資料一同查詢。 您也可以使用其他位置,例如 Azure 儲存體、Azure 事件中樞及特定 Microsoft 監視合作夥伴。 如需詳細資訊,請參閱 Azure 資源記錄 (機器翻譯) 和資源記錄目的地 (機器翻譯)。

如需收集、儲存及路由傳送資源記錄的詳細資訊,請參閱 Azure 監視器中的診斷設定 (機器翻譯)。

如需 Azure 監視器中所有可用資源記錄類別的清單,請參閱 Azure 監視器中支援的資源記錄 (機器翻譯)。

Azure 監視器中的所有資源記錄都有相同的標頭欄位,後面接著服務特定的欄位。 一般結構描述如 Azure 監視器資源記錄結構描述中所述。

Azure Functions 與 Azure 監視器記錄整合以監視函式。 如需如何設定診斷設定來設定及路由資源記錄的詳細指示,請參閱在 Azure 監視器中建立診斷設定

新增 Azure Functions 診斷設定的螢幕擷取畫面。

如需可用的資源記錄類別、其相關聯的 Log Analytics 資料表,以及 Azure Functions 的結構描述,請參閱 Azure Functions 監視資料參考

Azure 活動記錄檔

活動記錄包含訂用帳戶層級事件,用於追蹤每個 Azure 資源外部可見的作業;例如,建立新的資源或啟動虛擬機器。

收集:活動記錄事件會自動產生並收集至個別存放區中,以便使用者在 Azure 入口網站中檢視。

路由傳送:您可以將活動記錄資料傳送至 Azure 監視器記錄,以便與其他記錄資料一起分析。 您也可以使用其他位置,例如 Azure 儲存體、Azure 事件中樞及特定 Microsoft 監視合作夥伴。 如需進一步了解如何路由傳送活動記錄,請參閱 Azure 活動記錄概觀 (機器翻譯)。

其他記錄

Azure Functions 也提供收集超過 Azure 監視器資源記錄的功能。 若要檢視在 Azure 中所執行函式產生的應用程式記錄檔近乎即時資料流,您可以連線到 Application Insights 並使用即時計量資料流。 或者,您可以使用 App Service 平台內建記錄資料流來檢視應用程式記錄檔的資料流。 如需詳細資訊,請參閱在 Azure Functions 中啟用串流執行記錄

分析監視資料

有許多工具可用來分析監視資料。

Azure 監視器工具

Azure 監視器支援下列基本工具:

支援更複雜視覺效果的工具包括:

  • 儀表板 (機器翻譯) 可讓您將不同類型的資料合併到 Azure 入口網站中的單一窗格。
  • 活頁簿,這是能在 Azure 入口網站中建立的可自訂報表。 活頁簿可以包含文字、計量及記錄查詢。
  • Grafana 是在操作儀表板中表現相當出色的開放平台工具。 您可以使用 Grafana 來建立儀表板,納入 Azure 監視器以外多個來源的資料。
  • Power BI (機器翻譯) 是一項商務分析服務,可提供跨各種資料來源的互動式視覺效果。 您可以將 Power BI 設定為從 Azure 監視器自動匯入記錄資料,以利用這些視覺效果。

Azure 監視器匯出工具

您可以使用下列方法將資料從 Azure 監視器中提取至其他工具:

若要開始使用適用於 Azure 監視器的 REST API,請參閱 Azure 監視 REST API 逐步解說 (機器翻譯)。

分析 Azure Functions 的計量

Functions 提供下列兩個支援無伺服器裝載的動態擴展計劃:

提供快速水平調整,具有彈性的計算選項、虛擬網路整合,以及使用 Microsoft Entra ID 驗證的完整連線支援。 在此方案中,執行個體會根據所設定的每個執行個體的並行數、傳入事件數和每個函式的工作負載來動態擴增,以達到最佳的效率。 Flex Consumption 是無伺服器託管的建議方案。 如需詳細資訊,請參閱 Azure Functions 彈性消耗方案託管

您的應用程式可用的應用程式層級計量取決於您所使用的取用方案類型。

以下這些 Azure 監視器計量與彈性取用方案計費相關:

計量 描述 儀表計算
按需函式執行次數 隨需執行個體中的函數執行總數。 OnDemandFunctionExecutionCount 與「隨需執行總計」計數器相關。
Always Ready 函式執行計數 一律就緒執行個體中的函數執行總數。 AlwaysReadyFunctionExecutionCountAlways Ready Total Executions 計量相關。
隨需應變功能執行單元 主動執行函式時,隨選執行個體的總 MB 毫秒數。 OnDemandFunctionExecutionUnits / 1,024,000 是隨需執行時間計量,以 GB 秒為單位。
Always Ready 功能執行單元 主動執行函式時,隨時可用執行個體的總 MB 毫秒數。 AlwaysReadyFunctionExecutionUnits / 1,024,000 是 Always Ready Execution Time 計量,以 GB 秒為單位。
隨時準備就緒的單位 指派給應用程式的隨時就緒執行個體的總 MB 毫秒數,無論函式是否正在主動執行。 AlwaysReadyUnits / 1,024,000 是「隨時就緒基準線」計量表,以 GB 秒為單位。

如需詳細資訊,請參閱 Azure Functions 監視資料參考

若要進一步瞭解函式的成本,請使用 Azure 監視器來檢視函式應用程式所產生的成本相關計量。 您可以使用下列其中一個工具來檢視監視指標:

使用 Azure Monitor 指標探索器,以圖形格式檢視您彈性使用方案之函式應用程式的成本相關資料。

  1. Azure 入口網站中,打開您的函式應用程式。

  2. 在左側面板中,向下捲動至 [監控],然後選取 [計量]。

  3. 指標 中,選取 隨需函數執行計數總和 以供 彙總。 此選項會將所選期間內的執行計數總和新增至圖表。

  4. 選取 新增指標 ,並將 隨需函式執行單位一律就緒函式執行計數一律就緒函式執行單位一律就緒單位 新增至圖表。

產生的圖表包含所選時間範圍內所有 Flex Consumption 執行指標的總計,在此範例中是自訂時間範圍。

隨選函數執行計數和隨需函數執行單位的圖表。

由於隨需函式執行單位的數目大於隨選函式執行計數,而且應用程式上沒有 隨時備妥的執行個體 ,因此圖表只會顯示隨選函式執行單位。

此圖表顯示 16 分鐘內總共消耗了 3.54 億 On Demand Function Execution Units 個,以 MB 毫秒為單位。 若要轉換為 GB 秒,請除以 1,024,000。 在此範例中,函數應用程式已使用 3,540,000,000 / 1,024,000 = 3,457.03 GB/秒。 您可以將此值乘以 Functions 定價頁面上隨需執行時間的目前價格,假設您已經使用了任何免費的執行時間授予,這會為您提供這 16 分鐘的成本。 您可以將這個相同的計算方式用於「Always Ready Function Execution Units」計量與「Always Ready Execution Time」計費量表成本,以及用於「Always Ready Units」計量與「Always Ready Baseline」計費量表成本,以計算 Always Ready 執行個體的 GB-秒成本。

若要計算隨需執行總計成本,請取相同時段的隨需函數執行計數總和,轉換為數百萬,然後乘以 函數定價頁面上的隨需執行總計價格。 例如,上述範例中的 2,100 次執行會 0.0021 轉換為百萬次執行。 您可以將相同的計算與 Always Ready 函數執行計數指標和 Always Ready Total Executions 計費計量搭配使用,以找出 Always Ready 執行個體所處理的執行成本。

若要深入瞭解如何預估這些計劃的成本,請參閱 預估取用計劃成本

分析 Azure Functions 的記錄

Azure Functions 會將所有記錄寫入您傳送資料的 Log Analytics 工作區中 LogManagement 底下的 FunctionAppLogs 資料表。 您可以使用 Kusto 查詢來查詢資料。

Log Analytics 工作區中 Azure Functions 查詢視窗的螢幕擷取畫面。

Kusto 查詢

您可以使用 Kusto 查詢語言 (KQL) 分析 Azure 監視器記錄/Log Analytics 存放區中的監視資料。

重要事項

當您從入口網站的服務功能表中選取 [記錄] 時,Log Analytics 會隨即開啟,並將查詢範圍設定為目前的服務。 此範圍表示記錄查詢只會包含該資源類型的資料。 如果您想要執行包含其他 Azure 服務資料的查詢,請從 [Azure 監視器] 功能表中選取 [記錄]。 如需詳細資訊,請參閱 Azure 監視器 Log Analytics 中的記錄查詢範圍和時間範圍

如需各項服務的常見查詢清單,請參閱 Log Analytics 查詢介面 (機器翻譯)。

下列範例查詢可協助您監視所有函數應用程式記錄:


FunctionAppLogs
| order by TimeGenerated desc

FunctionAppLogs
| project TimeGenerated, HostInstanceId, Message, _ResourceId
| order by TimeGenerated desc

下列範例查詢可協助您監視特定函數應用程式的記錄:

FunctionAppLogs
| where FunctionName == "<Function name>" 
| order by TimeGenerated desc

下列範例查詢可協助您監視所有函數應用程式記錄上的例外狀況:


FunctionAppLogs
| where ExceptionDetails != ""  
| order by TimeGenerated asc

下列範例查詢可協助您監視特定函數應用程式記錄的例外狀況:

FunctionAppLogs
| where ExceptionDetails != ""  
| where FunctionName == "<Function name>" 
| order by TimeGenerated desc

警示

在監視資料中發現特定狀況時,Azure 監視器警示會主動通知您。 警示可讓您在客戶發現系統發生問題前,就先及早識別和解決問題。 如需詳細資訊,請參閱 Azure 監視器警示

Azure 資源的常見警示有許多來源。 如需 Azure 資源的常見警示範例,請參閱記錄警示查詢範例 (機器翻譯)。 Azure 監視器基準警示 (AMBA) (英文) 網站提供半自動化方法來實作重要的平台計量警示、儀表板和指導方針。 此網站適用於持續擴充的 Azure 服務子集,包括屬於 Azure 登陸區域 (ALZ) 的所有服務。

常見的警示結構描述會將 Azure 監視器警示通知的使用量標準化。 如需詳細資訊,請參閱一般警示結構描述 (機器翻譯)。

警示類型

您可以在 Azure 監視器資料平台中設置任何計量或記錄資料來源的警示。 警示有許多不同的類型,具體取決於您監視的服務以及所收集的監視資料。 不同類型的警示各有優缺點。 如需詳細資訊,請參閱選擇正確的監視警示類型 (機器翻譯)。

下列清單介紹可建立的 Azure 監視器警示類型:

  • 計量警示會定期評估資源計量。 計量可以是平台計量、自訂計量、轉換成計量或 Application Insights 計量的Azure 監視器記錄。 計量警示還可以套用多個條件和動態閾值。
  • 記錄警示可讓使用者使用 Log Analytics 查詢,以預先定義的頻率評估資源記錄。
  • 活動記錄警示 (機器翻譯) 會在發生符合定義條件的新活動記錄事件時觸發。 [資源健康狀態] 警示和 [服務健康狀態] 警示是回報服務和資源健康狀態的活動記錄警示。

某些 Azure 服務也支援智慧偵測警示Prometheus 警示建議的警示規則

對於某些服務,若要進行大規模監控,您可以將相同計量警示規則套用至相同 Azure 區域中存在的多個同類型資源。 系統會針對每個受監視的資源傳送個別通知。 如需支援的 Azure 服務和雲端,請參閱使用一個警示規則監視多個資源 (機器翻譯)。

附註

如果您要建立或執行在服務上執行的應用程式,Azure 監視器 Application Insights 可提供更多類型的警示。

Azure Functions 警示規則

下表列出 Azure Functions 的常見和建議警示規則。 這些警報只是建議。 您可以設定 Azure Functions 監視資料參考中列出的任何計量、記錄項目或活動記錄項目的警示。

警示類型 條件 描述
計量 平均連線 連線數目超過設定值時
計量 HTTP 404 HTTP 404 回應超過設定值時
計量 HTTP 伺服器錯誤 HTTP 5xx 錯誤超過設定值時
活動記錄檔 建立或更新函數應用程式 建立或更新應用程式時
活動記錄檔 刪除函式應用程式 刪除應用程式時
活動記錄檔 重新啟動函數應用程式 重新啟動應用程式時
活動記錄檔 停止函數應用程式 停止應用程式時

Advisor 建議

對於一些服務,如果在資源作業期間發生重大狀況或有即將到來的變更,入口網站的服務 [概觀] 頁面上會顯示警示。 您可以在左側功能表中 [監視] 底下的 [Advisor 建議] 中找到警示的詳細資訊和建議的修正。 在正常作業期間,不會顯示 Advisor 建議。

如需 Azure Advisor 的詳細資訊,請參閱 Azure Advisor 概觀 (機器翻譯)。

如需關於監視 Azure Functions 中 DI 的詳細資訊,請參閱下列文章: