Core + Vue 後臺管理基礎框架7——APM

一、前言數據庫

  APM,又稱應用性能統計,主要用來跟蹤請求調用鏈,每一個環節調用耗時,爲咱們診斷系統性能、定位系統問題提供了極大便利。本系統採用的是Elastic Stack體系中的APM,主要是以前部門搞PCI認證,其中有一環ELK,而恰好ELK就是我搭建的,這裏就順便使用ELK體系的APM,不必再另起一套了。json

二、實現centos

  首先,你須要搭建好ELK平臺,這裏搭建過程不作贅述,你們參考Elastic Stack官網,簡單明瞭。服務器

  而後,安裝Elastic APM Server,就是一個Linux RPM包,一行Linux命令的事情,也不作贅述。這裏交代下APMServer的幾個關鍵配置,以centos7爲例。在/etc/apm-server目錄下,有個apm-server.yml配置文件,修改其中以下幾處:app

apm-server訪問地址,改爲你本身服務器IP和端口:性能

 

 

APM Agent訪問token憑證,這是個靜態口令,你能夠隨意調整:centos7

 

 

SSL啓用,表明各agent須要以https方式來連接apm-server,換成你本身的證書和key:server

 

 

到ES存儲的連接,一樣須要調整成你本身的:中間件

 

 

  其中各項配置的參數,配置文件中已經註釋的比較清楚了,大概看下其描述咱們就知道該怎麼配。blog

  

  Apm-server配置好以後,接下來就是咱們應用中引入和配置agent了。首選,在咱們待監控應用系統配置文件appsetting.json中,加入以下一段配置:

 

   SecretToken是咱們服務端配置的那個secret_token,必須一致。ServerURLs是apmserver訪問地址,對應服務端的host參數。ServiceName是咱們系統標識,ES和kibana中咱們會以此來區分不一樣應用的監控數據。VerifyServerCert表明是否須要校驗apm-server服務端證書,這裏方便起見,直接配置false了,不然agent端會直接把到apm-server的連接給拒絕。

  而後,引入Elastic.Apm.NetCoreAll包,ElasticStack包含各類原子包,能夠分別監控.NETCORE、aspnetcore、EF等,能夠根據具體需求引入對應包,而Elastic.Apm.NetCoreAll直接囊括全部,這裏由於系統要監控應用、EF、數據庫執行等,因此直接引用了這個大而全的包。以後,引入中間件:

 

   此中間件引入最好放在最靠前的位置,由於要監控整條鏈路。

 

三、效果

  登陸系統,而後隨便開幾個頁面,以下:

 

   而後,咱們進入kibana,找到對應的APM菜單進去:

 

   右邊列表名稱那一欄,是咱們agent配置中,對應的ServiceName,找到對應系統,點擊進去:

 

 

 

   兩張圖上邊一張是請求負載狀況,下邊是應用系統收到的每一個http請求,咱們以searchroles這個爲例,進去看看:

 

   能夠看到,searchroles的全部請求數量,每一個請求各環節執行時間,最下面默認展現最近一次請求的跟蹤數據,裏邊能夠直觀體現本次http請求處理總時間、數據庫執行時間,若是有跨服務調用,還會統計其餘服務調用時間,甚至幫咱們追蹤到了執行的SQL,很是之方便,開箱即用。因此,之後不再要說EF性能低、出問題很差定位之類的話,必定是你姿式不對。

相關文章
相關標籤/搜索