工作隨筆——pinpoint分布式性能監控工具(docker安裝)


2020-05-25:更新 2.0.0 版本后配置文件路徑

 

在做性能壓測的時候,你是不是有只能看到測試報告?

在做性能壓測的時候,你是不是想知道每一個方法執行了多長時間?

Pinpoint幾乎可以幫助你查看你想看到的每一個細節。

 

Pinpoint是什么?

Pinpoint是一款全鏈路分析工具,提供了無侵入式的調用鏈監控、方法執行詳情查看、應用狀態信息監控等功能。基於GoogleDapper論文進行的實現,與另一款開源的全鏈路分析工具Zipkin類似,但相比Zipkin提供了無侵入式、代碼維度的監控等更多的特性。 Pinpoint支持的功能比較豐富,可以支持如下幾種功能:

  • 服務拓撲圖:對整個系統中應用的調用關系進行了可視化的展示,單擊某個服務節點,可以顯示該節點的詳細信息,比如當前節點狀態、請求數量等
  • 實時活躍線程圖:監控應用內活躍線程的執行情況,對應用的線程執行性能可以有比較直觀的了解
  • 請求響應散點圖:以時間維度進行請求計數和響應時間的展示,拖過拖動圖表可以選擇對應的請求查看執行的詳細情況
  • 請求調用棧查看:對分布式環境中每個請求提供了代碼維度的可見性,可以在頁面中查看請求針對到代碼維度的執行詳情,幫助查找請求的瓶頸和故障原因。
  • 應用狀態、機器狀態檢查:通過這個功能可以查看相關應用程序的其他的一些詳細信息,比如CPU使用情況,內存狀態、垃圾收集狀態,TPS和JVM信息等參數。

 

架構組成

Pinpoint 主要由 3 個組件外加 Hbase 數據庫組成,三個組件分別為:Agent、Collector 和 Web UI。

  • Agent組件:用於收集應用端監控數據,無侵入式,只需要在啟動命令中加入部分參數即可
  • Collector組件:數據收集模塊,接收Agent發送過來的監控數據,並存儲到HBase
  • WebUI:監控展示模塊,展示系統調用關系、調用詳情、應用狀態等,並支持報警等功能

 

安裝Collector組件

# 克隆官方提供的docker git
git clone https://github.com/naver/pinpoint-docker.git
cd pinpoint-docker
# 1.7.3版本需要將 pinpoint-docker/docker-compose.yml的第17行和第18行修改為絕對路徑,否則會啟動報錯(docker 17.03版本測試)
# 如需修改相關組件的ip和端口,請修改pinpoint-Docker/.env文件
docker-compose pull && docker-compose up -d
# 啟動完成后訪問網頁 http://localhost:8081/#/submit 將pinpoint-docker/pinpoint-flink/build/pinpoint-flink-job-{pinpoint-version}.jar 文件手動upload到flik組件中,上傳的版本需要和pinpoint保持一致
# 訪問:http://localhost:8079/ 即可瀏覽pinpoint頁面

# 官方說明:https://github.com/naver/pinpoint-docker

 

安裝Agent組件

 訪問 https://github.com/naver/pinpoint/releases 下載和 Collector組件 相同版本的pinpoint-agent壓縮包。

 解壓pinpoint-agent壓縮包,找到 pinpoint.config 文件,修改為你對應環境的配置。一般情況只需要修改配置項 profiler.collector.ip=127.0.0.1 為你自己的Collector組件的IP。

 

# 注意:2.0.0 版本及其以上 
pinpoint.config 文件新增了多環境配置項
pinpoint.profiler.profiles.active=release

假如:你的agent存放在:E:\pinpoint-agent-2.0.1
那么:你需要修改的文件在 E:\pinpoint-agent-2.0.1\profiles\release 目錄下
如果你的點擊了多次請求,發現只有少量的數據,需要配置  profiler.sampling.rate=1

 

 

 

配置應用程序

// 如果你在多台機器上部署了應用程序,那么就需要在多台機器上部署Agent組件
// ${pinpointPath}是agent組件存放的路徑,類似於JAVA_HOME
// 在java啟動命令中加入如下參數
-javaagent:${pinpointPath}/pinpoint-bootstrap-1.7.3.jar
-Dpinpoint.applicationName=  // 在pinpoint上顯示的名字
-Dpinpoint.agentId=               // id,可以和applicationName相同,也可以不同

啟動程序,訪問一下,就可以在pinpoint上看見相關數據。

 

pinpoint使用教程:點我去查看

 


免責聲明!

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



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