1. 程式人生 > >工作隨筆——pinpoint分布式性能監控工具(docker安裝)

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

clas 詳情 pat 針對 配置 hub csdn 了無 相關

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

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

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。

配置應用程序

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

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

pinpoint使用教程:點我去查看

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