Microsoft近期在一個博客帖子中宣布了支持Application Insights的Azure Functions初步預(yù)覽版。這兩個服務(wù)的集成,使得開發(fā)人員不僅可以使用內(nèi)建的代碼性能測量(Instrumentation),并通過一個門戶網(wǎng)頁查看代碼的性能趨勢,而且可以設(shè)置用于生成通知或調(diào)出外部Webhook的監(jiān)控閾值。
當(dāng)前,Application Insights集成特性僅在Azure Functions的“Beta”版中可用,并不推薦用于生產(chǎn)環(huán)境的Azure Functions App中。在一個GitHub 頁面中,Azure Functions團隊的項目經(jīng)理Chris Anderson概括了該Azure Functions預(yù)覽版的目標(biāo):
該初步預(yù)覽版的目標(biāo)是在四月份更大范圍內(nèi)發(fā)布預(yù)覽版之前,最大程度上對全新的體驗進行測試、探索并取得突破。
啟用該新特性非常簡單。開發(fā)人員只需創(chuàng)建一個General Application Insights實例,獲得性能測量鍵值(Instrumentation Key),然后更新其Azure Functions App的應(yīng)用設(shè)置,添寫APPINSIGHTS_INSTRUMENTATIONKEY鍵的信息,并將FUNCTIONS_EXTENSION_VERSION鍵設(shè)為“beta”。
圖片來源:https://blogs.msdn.microsoft.com/appserviceteam/2017/04/06/azure-functions-application-insights/
一旦設(shè)置了應(yīng)用的鍵/值對信息,開發(fā)人員就可以查看多種遙測特性,包括Live Stream、Metrics Explorer、Failures、Performance、Servers、Analytica和Alerts。開發(fā)人員還可以使用.NET App Insights SDK自定義一些可被發(fā)現(xiàn)的遙測特性,然后通過TelemetryClient添加到Application Insights中。Node.js開發(fā)人員也可使用App Insights Node.js SDK。
Live Stream
當(dāng)點擊Live Stream視圖時,開發(fā)人員會在Application Insights的門戶網(wǎng)頁上看到一個近實時視圖,其中顯示了他們的Functions App性能。數(shù)據(jù)浮現(xiàn)在Live Stream上,其中包括Incoming Requests、Outgoing Requests、Overall Health和Server計數(shù)器。
圖片來源:https://blogs.msdn.microsoft.com/appserviceteam/2017/04/06/azure-functions-application-insights/
性能分析
Function Apps在啟用了Application Insights集成特性后, 將會在Requests、Exceptions、Traces、PerformanceMetrics、CustomEvents和CustomMetrics等表中發(fā)布數(shù)據(jù)。開發(fā)人員可以使用一種稱為AIQL的語言,在Application Insights門戶網(wǎng)頁中編寫類SQL查詢。定制的查詢將會去查詢在針對應(yīng)用而采集的數(shù)據(jù),查詢結(jié)果以表格、圖表和曲線圖等的方式展示。
報警功能
在應(yīng)用的性能發(fā)生改變時,可使用Application Insights提供的報警功能。Application Insights可生成三類報警:
度量報警:一旦度量超過某個閾值一段時間后,就進行報警。度量可以是響應(yīng)時間、例外計數(shù)、CPU占用率或訪問量等。 Web測試:一旦站點在因特網(wǎng)上不可訪問,或是響應(yīng)遲緩,就進行報警。 前瞻診斷:對異常的性能模式進行報警。它是自動配置的。通過配置Webhook,或是通過調(diào)用Azure Logic Apps,可以實現(xiàn)在其它系統(tǒng)中觸發(fā)報警。Azure Logic Apps是一個集成平臺即服務(wù)(iPaaS,Integration Platform as a Service),提供了對一些第三方SaaS應(yīng)用的連接器,包括Twilio、PagerDuty和SendGrid等。
圖片來源:https://docs.microsoft.com/en-us/azure/application-insights/app-insights-alerts
查看英文原文:Microsoft Adds Application Insights Support for Azure Functions