即時監控應用程式健康及使用行為 - Azure 上的 Application Insights 功能

Application Insights 目前 (2014/11月) 為 Microsoft Azure 所提供的預覽版服務,能夠看到您的應用程式相關的統計資訊,快速收集開發環境及上線環境上的資料,Application Insights讓我們以全方位觀點檢查服務的行為、可靠性和效能。

在文章開始前,可以先看看 Channel 9 上 Application Insights 影片大家會有更清楚的了解。

Channel 9:  Application Insights For ASP.NET

如果想要更加了解這項功能,Azure 的入口網站及 Application Insights 都有提供完整訂閱的資源服務及整合計費方式。目前看到的個人化儀表版,簡稱為開始面版,可以一覽所有應用程式的健全狀況和效能。儀表版的設計採用類似動態磚造型,可以依據個人的需求去配置,將最重要的項目釘選到開始畫面。

為了讓這些資源容易管理,Azure 預覽入口 (Azure portal) 新增了資源群組功能可以將資源依序整理放入。現在來看看其中一項資源群組。

資源群組可以查看目前應用程式的實際營運環境狀況。資源群組現在包含 虛擬機器、虛擬網絡、儲存體、SQL Database、及 Application Insights。將這些資源綁定後如果後續要設定並管理環境的資源時,可以容易的控管本地端應用程序,Azure 預覽入口網站會自動計算您現有的費用,並預估整個月的使用量,預測可能的總費用。

我們可以接著看更深入的資源及功能部份,它看起來就像個歷程,點選每個階段的歷程會在右側出現新的”界面”。下圖可以詳細看到虛擬機器中資源的使用

但目前重點是 Application Insights 可以開始使用了嗎?將回應時間的點陣圖點開會看到圖上有些紅色的圓點,而當出現這些紅色圓點時即表示出現了異常。

回頭看剛剛設定好的效能設置即可找出問題點並且知道問題是何時發生的。想要找出問題的話,可以透過一項簡單的URL ping測試。基本上我們只要給他一個URL;然後選擇要從哪邊發出測試看網站是否存活即可。測試位置可以在全球不同的位置,但我們也可以使用 Visual Studio 產生的 WebTest  參與測試。另外,也可以設定當錯誤發生時,可以在指定的信箱中自動收到錯誤通知。

我們可以從指定的錯誤事件中了解發生的問題點,也可以從 Visual Studio 的 WebTest 中獲得進一步的分析及了解。

需要注意的是,即使從新的Portal去探索進程,只要點選”首頁”鍵隨時可跳轉至開始面版 (Start board) 。

回到主畫面來看目前觀測中的應用程式效能。點選診斷的時間表,發現在伺服器例外狀況的曲線中出現異常高峰。

收到錯誤訊息的情況有許多種,但我們能馬上就知道異常所影響的範圍大小。其中最讓我們注意的應該就是這張圖發生的 System.Web.HTTPExceptionsm。要解決這項異常,須先進入 診斷介面(Diagnostics Search blade),裡面包含診斷分析及發生異常的原因及時間點。我們可以再點選各別的異常去觀看診斷數據。

異常的詳細資訊界面上可以看到錯誤追蹤及相關的網站要求屬性如語言環境,設備類型,用戶代理訊息…等等。

回到開始面版分析應用程式的回應。界面上的釘選資訊可以看到客戶端及伺服器端的處理時間,視圖中的應用程序是 ASP.NET Web 應用程序。

這張效能圖可以讓我們了解目前 Web 應用程式所遇到的困境,是發生在瀏覽器本身或在服務器上的客戶端?哪個網頁加載入時間最長?

最後,如果想了解用戶端方面應用程式的使用情形,可以直接從開始面版上的釘選資訊作選擇觀看。

這個畫面可以看到使用者瀏覽器的版本配置、螢幕解析度…等。

Azure 預覽入口網站的 Application Insights 能夠讓你偵測及診斷效能問題。現在就進入界面看看該如何進行操作。

Application Insights 中的診斷搜尋功能能夠診斷及搜尋特定時間範圍的應用程式登入紀錄。應用程式登入的次數越多,或是使用次數越多,可能會出現多達百萬筆的紀錄。