在11月9號的上海.Net Conf開發者峯會上,我作了一個對Application Insights的Persentation,原本想着快速將其轉化爲一篇博客無賴最近忙成🐶。java
因爲Application Insights依賴於Azure,可能對於大多數人沒有Azure訂閱,爲了便於你們瞭解Application Insights,我這裏提供一個簡單的demo
帳號 publicdemo@myluobin.onmicrosoft.com
密碼 Qq123654.. (最後面有2個英文句號,被那該死密碼規則搞死了)
在 http://portal.azure.com
登陸,以後能夠看到一個叫bookStore的Application Insights的資源,能夠體驗下Application Insights
該Application Insights綁定了網站 http://appinsightsdemotest.azurewebsites.net/
該網站基於abp.vnext裏的一個bookStore的Sample構建的一個簡單示例(原本想用eShop,無耐那貨太多站點我私人的訂閱hold不住那個費用)
上述資源由本人私人的Azure訂閱提供(是須要扣費的)
不提供穩定性保證,不承諾SLA,任何狀況下均可能發生不可用的狀況,不接受投訴
因爲使用的是丐中丐配置,網站的速度稍慢請諒解
該Demo網站須要註冊個帳號,對於懶癌患者可使用帳號123,密碼 !QAZ2wsx 來進行使用python
Application Insights在如下簡稱AI,因此後面看到AI時候不要覺得是人工智能,這是Application Insights的縮寫。git
既然寫博客了,就能夠不用在乎Persentation時候那樣時間限制,能夠隨心所欲的寫多點了。github
這個做爲開篇章節先簡單說幾個最基礎的東西:
①AI是什麼
②AI是如何工做的
③AI使用入門web
AI是微軟基於Azure平臺所提供的一個應用程序性能管理 (APM) 服務, 使用它能夠監視實時 Web 應用程序。 它會自動檢測性能異常。 其中包含強大的分析工具來幫助診斷問題,瞭解用戶在應用中實際執行了哪些操做。
雖然它是微軟家的東西可是它毫不是隻可用於微軟家的產品,對js/java/python等之類非微軟家的產品它也提供支持。同時github上也有不少其餘開源的sdk可使用。
github上AI的topic能夠了解下 https://github.com/topics/application-insights數據庫
AI是依賴於在程序裏集成SDK的形式由SDK發送數據來進行數據收集。app
下圖是微軟官方文檔裏的工做方式說明
工具
右下角帶AI字樣就是能夠集成SDK的(都是「你的",你確定能集成)而後由它們發送數據到Azure上的AI,以後他在數據用於各類用途。
有一些地方不能進行整合的好比外部服務或者SQL之類的在AI裏會體現爲依賴項的形式。性能
另外默認狀況下AI的數據是發給國際版的Azure上的AI,若是是國內版的AI記得要修改其終結點地址,否則會發到國際版去(就至關於沒收集到數據)
能夠參考 https://docs.azure.cn/zh-cn/azure-monitor/app/custom-endpoints
固然你能夠將地址改成你本身搭建的一個logstash 上而後自個收集AI的SDK發送的數據來作本身的APM,就像咱們曾經幹過的那樣...測試
用最開始上文提到的帳號登陸以後,點擊」全部資源「
找到一個叫bookStore的資源點擊進入
下面我會簡單說下左側側邊欄框出來的4個內容
應用程序映射
有時候,你會不會想知道,你的站點調用了哪幾個別人家的站點,調用了幾個數據庫,當前性能如何,錯誤率怎樣。
應用程序映射就是爲了解決你這個問題而生的。
在bookStore這個demo裏它只調用了一個數據庫,看起來好像沒啥特別的,來看看我司的調用拓撲吧(測試環境的)
通常公司的內部調用可能會更接近我上面圖的狀況,再配合一些篩選,就能夠從這個圖裏整理出你所想知道的某站點調用關係拓撲,以及性能和錯誤率等數據,
在整理站點間關係的時候這個仍是挺有用的。
實時指標流
正常來講從程序觸發了某個行爲開始,此行爲的數據要進入到AI裏且能在圖表上展現出這個數據,通常要延遲個三五分鐘左右。
由於AI首先它是有一個獨立線程它會收集數據,積攢起來,到達某個閾值或者某個間隔時間的時候它纔會將數據一次性發送給AI。
否則每請求一次接口就將數據直接上報給AI這都要流量風暴了,由於上述機制首先數據發送的時候就會有延遲。
另外AI收集到數據後它也要作數據的處理,這也會產生必定的延遲。
可是有時候你新上線一個東西,你很急,你就想立馬看到結果是怎樣(好比線上改bug什麼的😂)
此時你能夠找到實時指標流,點進去,立馬看到結果。
(我站點裏點擊下實時指標流裏立馬就能體現出來)
通常實時指標流延遲不會超過1秒,你操做以後立馬會在AI的實時指標流面板裏體現。
可是請注意:實時指標流裏的任何數據都不會存儲到AI裏,因此它是屬於轉瞬即逝的數據,要看請抓緊。
同時此功能是不收費的,正統AI的收費就是收存儲數據的¥,而由於實時指標流不存數據因此是免費的。
異常和性能
異常和性能這兩個頁面感受主要你們多點點,沒啥太多好說的。
若是點到爆炸了能夠在右上方發個哭臉投訴微軟🤣
另外不管是異常仍是性能頁面在最右下方會有要給「深刻鑽取",裏面點擊」示例「以後能夠看到你每一個請求的信息
點擊以後會進入它的一個端到端事務的視圖,通俗的說就是該請求下的調用鏈的狀況
此頁面你能夠看到你請求哪裏來的而後經歷了什麼步驟,而後分析出瓶頸再作優化。
若是你多個站點都是集成了AI,他會將其餘站點的狀況只要和這個請求有關聯的一併反映到該視圖下。
本篇入門級的就大概先說那麼多。 後續有空的話再寫一篇如何使用AI的語句查詢(我以爲這是AI最強的地方之一的功能,也是我我的平時用的最多的功能)。 有興趣的能夠點擊」日誌(分析)「本身先進去玩玩。