ApplicationInsights入門到精通系列(一)


在11月9號的上海.Net Conf開發者峰會上,我做了一個對Application Insights的Persentation,本來想着快速將其轉化為一篇博客無賴最近忙成🐶。


由於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 來進行使用


Application Insights在以下簡稱AI,所以后面看到AI時候不要以為是人工智能,這是Application Insights的縮寫。

既然寫博客了,就可以不用在意Persentation時候那樣時間限制,可以為所欲為的寫多點了。


這個作為開篇章節先簡單說幾個最基礎的東西:
①AI是什么
②AI是如何工作的
③AI使用入門

①AI是什么

AI是微軟基於Azure平台所提供的一個應用程序性能管理 (APM) 服務, 使用它可以監視實時 Web 應用程序。 它會自動檢測性能異常。 其中包含強大的分析工具來幫助診斷問題,了解用戶在應用中實際執行了哪些操作。
雖然它是微軟家的東西但是它絕不是只可用於微軟家的產品,對js/java/python等之類非微軟家的產品它也提供支持。同時github上也有很多其他開源的sdk可以使用。
github上AI的topic可以了解下 https://github.com/topics/application-insights

②AI是如何工作的

AI是依賴於在程序里集成SDK的形式由SDK發送數據來進行數據收集。

下圖是微軟官方文檔里的工作方式說明

右下角帶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,就像我們曾經干過的那樣...

③AI使用入門

用最開始上文提到的賬號登錄之后,點擊”所有資源“

找到一個叫bookStore的資源點擊進入

下面我會簡單說下左側側邊欄框出來的4個內容

應用程序映射
有時候,你會不會想知道,你的站點調用了哪幾個別人家的站點,調用了幾個數據庫,當前性能如何,錯誤率怎樣。
應用程序映射就是為了解決你這個問題而生的。

在bookStore這個demo里它只調用了一個數據庫,看起來好像沒啥特別的,來看看我司的調用拓撲吧(測試環境的)

一般公司的內部調用可能會更接近我上面圖的情況,再配合一些篩選,就可以從這個圖里整理出你所想知道的某站點調用關系拓撲,以及性能和錯誤率等數據,
在整理站點間關系的時候這個還是挺有用的。

實時指標流
正常來說從程序觸發了某個行為開始,此行為的數據要進入到AI里且能在圖表上展示出這個數據,一般要延遲個三五分鍾左右。
因為AI首先它是有一個獨立線程它會收集數據,積攢起來,到達某個閾值或者某個間隔時間的時候它才會將數據一次性發送給AI。
不然每請求一次接口就將數據直接上報給AI這都要流量風暴了,因為上述機制首先數據發送的時候就會有延遲。
另外AI收集到數據后它也要做數據的處理,這也會產生一定的延遲。

但是有時候你新上線一個東西,你很急,你就想立馬看到結果是怎樣(比如線上改bug什么的😂)
此時你可以找到實時指標流,點進去,立馬看到結果。

(我站點里點擊下實時指標流里立馬就能體現出來)

一般實時指標流延遲不會超過1秒,你操作之后立馬會在AI的實時指標流面板里體現。
但是請注意:實時指標流里的任何數據都不會存儲到AI里,所以它是屬於轉瞬即逝的數據,要看請抓緊。
同時此功能是不收費的,正統AI的收費就是收存儲數據的¥,而因為實時指標流不存數據所以是免費的。

異常和性能
異常和性能這兩個頁面感覺主要大家多點點,沒啥太多好說的。
如果點到爆炸了可以在右上方發個哭臉投訴微軟🤣

另外無論是異常還是性能頁面在最右下方會有要給“深入鑽取",里面點擊”示例“之后可以看到你每個請求的信息

點擊之后會進入它的一個端到端事務的視圖,通俗的說就是該請求下的調用鏈的情況

此頁面你可以看到你請求哪里來的然后經歷了什么步驟,然后分析出瓶頸再做優化。
如果你多個站點都是集成了AI,他會將其他站點的情況只要和這個請求有關聯的一並反映到該視圖下。

本篇入門級的就大概先說那么多。
后續有空的話再寫一篇如何使用AI的語句查詢(我覺得這是AI最強的地方之一的功能,也是我個人平時用的最多的功能)。
有興趣的可以點擊”日志(分析)“自己先進去玩玩。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM