apm是什么意思啊 apm是什么( 二 )


apm是什么意思啊  apm是什么

文章插圖
3、Pinpoint 部署網上太多部署文檔,這里不詳細說明,簡要說明下:
apm是什么意思啊  apm是什么

文章插圖
注意版本要求:
有兩種方式啟動:
方式一:修改 tomat 目錄下 bin/catalina.sh,在 Control Script for the CATALINA Server 加入以下三行代碼:
復制代碼
CATALINA_OPTS="$CATALINA_OPTS -javaagent:/home/webapps/service/pp-agent/pinpoint-bootstrap-1.6.2.jar"CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=pp32tomcattest"CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=32tomcat"之一行:pinpoint-bootstrap-1.6.2.jar 的位置第二行:agentId 必須唯一, 標志一個 jvm第三行:applicationName 表示同一種應用:同一個應用的不同實例應該使用不同的 agentId, 相同的 applicationName
方式二:SpringBoot 啟動
復制代碼
java-javaagent:/home/webapps/pp-agent/pinpoint-bootstrap-1.6.2.jar-Dpinpoint.agentId=pp32tomcattest -Dpinpoint.applicationName=32tomcat -jar 32tomcat-0.0.1-SNAPSHOT.jar4、代碼注入是如何工作的
apm是什么意思啊  apm是什么

文章插圖
Pinpoint 對代碼注入的封裝非常類似 AOP,當一個類被加載的時候會通過 Interceptor 向指定的 *** 前后注入 before 和 after 邏輯,在這些邏輯中可以獲取系統運行的狀態,并通過 TraceContext 創建 Trace 消息,并發送給 Pinpoint 服務器 。但與 AOP 不同的是,Pinpoint 在封裝的時候考慮到了更多與目標代碼的交互能力,因此用 Pinpoint 提供的 API 來編寫代碼會比 AOP 更加容易和*** 。
5、Pinpoint 實戰效果演示搭建一個 java 開源項目 jforum ,跑在 tomcat 下,使用 jmeter 進行壓測,用戶 100 個:
服務器圖(ServerMap)通過可視化其組件的互連方式來了解任何分布式系統的拓撲 。單擊節點將顯示有關組件的詳細信息,例如其當前狀態和事務計數 。實時活動線程圖(Realtime Active Thread Chart)實時監視應用程序內的活動線程 。(用了官方圖,當時沒截圖)請求 / 響應散布圖(Request/Response Scatter Chart)可視化請求計數和響應模式,以確定潛在問題 ??梢酝ㄟ^在圖表上拖動來選擇事務以獲取更多詳細信息 。調用棧信息(CallStack)增強分布式環境中每個事務的代碼級可見性,識別單個視圖中的瓶頸和故障點 。檢查器(Inspector)查看應用程序的其他詳細信息,如 CPU 使用率,內存 / 垃圾收集,TPS 和 JVM 參數 。
apm是什么意思啊  apm是什么

文章插圖
6、總結之一:PinPoint 從宏觀上看:總體鏈路、服務總體狀態(cpu、內存等等信息),符合【測試角度場景】性能測試調優監控的宏觀;第二:Spring Cloud Slueth 需要結合 Zipkin 從微觀來看:自身無法單獨提供展示,要結合 Zipkin 展示鏈路問題(并沒有服務器總體狀態的展示),更多服務器性能狀況等信息展示需要定制腳本通過 ELK 收集展示,符合【研發角度場景】性能測試調優監控的微觀;
總的來說兩者是結合體,要單獨使用的話,從測試業務上來看:PinPoint 滿足,性能測試調優監控的宏觀【測試角度場景】
7、項目場景訪問某個 API,后端應用服務產生的一系列鏈路,為何請求一次有 23 次數據庫訪問呢?這里就是需要排查的的地方,詳細看看 CallTree,找出可優化的 SQL 查詢語句 。
apm是什么意思啊  apm是什么

文章插圖

apm是什么意思啊  apm是什么

文章插圖
另外,在做性能測試的時候,服務器并發的 IO,PP 不斷寫入也會產生瓶頸,需要后續解決 。
8、標簽庫項目簡單壓測通過 jmeter 對標簽庫進行簡單壓測,腳本如下:
apm是什么意思啊  apm是什么

文章插圖
通過 APM 發現問題如下:
apm是什么意思啊  apm是什么

文章插圖
pquery.do 的 res 高達 6782ms,需要安排開發進一步排查定位代碼問題
apm是什么意思啊  apm是什么

文章插圖

apm是什么意思啊  apm是什么

文章插圖
另外一種場景,測試人員無法在頁面獲取到的信息(有些情況下,測試人員是沒有服務器權限),這些是服務底層的異常信息,可以通過 CallTree 來查看 。
9、應用服務接入 APM 后的鏈路全景蜘蛛網圖
apm是什么意思啊  apm是什么

推薦閱讀