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

在作性能壓測的時候,你是否是有隻能看到測試報告?java

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

Pinpoint幾乎能夠幫助你查看你想看到的每個細節。github

 

Pinpoint是什麼?

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

  • 服務拓撲圖:對整個系統中應用的調用關係進行了可視化的展現,單擊某個服務節點,能夠顯示該節點的詳細信息,好比當前節點狀態、請求數量等
  • 實時活躍線程圖:監控應用內活躍線程的執行狀況,對應用的線程執行性能能夠有比較直觀的瞭解
  • 請求響應散點圖:以時間維度進行請求計數和響應時間的展現,拖過拖動圖表能夠選擇對應的請求查看執行的詳細狀況
  • 請求調用棧查看:對分佈式環境中每一個請求提供了代碼維度的可見性,能夠在頁面中查看請求針對到代碼維度的執行詳情,幫助查找請求的瓶頸和故障緣由。
  • 應用狀態、機器狀態檢查:經過這個功能能夠查看相關應用程序的其餘的一些詳細信息,好比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壓縮包。bootstrap

 解壓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上看見相關數據。app

 

pinpoint使用教程:點我去查看分佈式

相關文章
相關標籤/搜索