Pinpoint-java性能分析最佳實踐_開源PaaS Rainbond

概述

pinpoint簡介

  • 何爲pinpoint: pinpoint是一個分析大型分佈式系統的平臺,提供解決方案來處理海量跟蹤數據,主要面向基於tomcat的Java 應用。
  • **爲什麼使用它:**和現在相比, 過去的因特網的用戶數量相對較小,而因特網服務的架構也沒那麼複雜。web服務一般使用兩層(web 服務器和數據庫)或三層(web服務器,應用服務器和數據庫)架構。然而在現在,隨着互聯網的成長,須要支持大量的併發鏈接,而且須要將功能和服務有機結合,致使更加複雜的軟件棧組合。更確切地說,比三層層次更多的n層架構變得更加廣泛。系統的複雜度所以提高。系統越複雜,越難解決問題,例如系統失敗或者性能問題。在三層架構中找到解決方案還不是太難,僅僅須要分析3個組件好比web服務器,應用服務器和數據庫,而服務器數量也很少。可是,若是問題發生在n層架構中,就須要調查大量的組件和服務器。另外一個問題是僅僅分析單個組件很難看到大局;當發生一個低可見度的問題時,系統複雜度越高,就須要更長的時間來查找緣由。最糟糕的是,某些狀況下咱們甚至可能沒法查找出來。爲了解決複雜架構下的拓撲解析與性能分析,pinpoint應運而生。

功能、優點與架構

  • 功能html

    • 分佈式事務跟蹤,跟蹤跨分佈式應用的消息
    • 自動檢測應用拓撲,幫助你搞清楚應用的架構
    • 水平擴展以便支持大規模服務器集羣
    • 提供代碼級別的可見性以便輕鬆定位失敗點和瓶頸
    • 使用字節碼加強技術,添加新功能而無需修改代碼
  • 優點java

    • 非入侵式:不須要修改應用的代碼,便可完成agent的部署。
    • 資源消耗:整體資源消耗只提升了3%左右。
  • 架構git

    • HBase (用於存儲數據)
    • Pinpoint Collector (信息的收集者,部署在tomcat中)
    • Pinpoint Web (提供WEB_UI界面,部署在tomcat中)
    • Pinpoint Agent (附加到 java 應用來作採樣)

###相關資料github

若是想要進一步瞭解這款強大的APM軟件,請訪問如下連接:web

雲幫最佳實踐

出發點

  • 化繁爲簡: 若是您通讀了pinpoint安裝部署的官方文檔,會發如今傳統架構下部署可用的pinpoint實例是一件很繁瑣的事情。不管是部署它的四個組件(HBASE、Collector、Web-UI、Agent),仍是部署完成後進行相應的配置,都須要操做人員具有必定的技術水平。爲此,雲幫平臺在雲市中發佈了pinpoint應用,由此能夠實現一鍵部署pinpoint應用。經過這種方式,極大的簡化了部署流程的同時,也下降了操做門檻。
  • 微服務化: 雲幫平臺是一款無服務器PaaS平臺,它經過容器化的方式發佈了pinpoint應用,這能夠抹去傳統架構下擴容難、升級難等缺陷。經過在雲幫平臺上應用管理界面中進行一些簡單的操做,能夠根據業務量的大小輕鬆實現pinpoint的擴容伸縮;K8S+Docker的容器化技術,確保了升級只需升鏡像的簡單途徑。今後,對於企業與我的的IT系統的運維開銷將下降不少。
  • 歸根結底: 雲幫平臺已經發布了成熟的應用,能夠輕鬆構建一套基於openJDK的java環境/Tomcat。加之目前發佈的pinpoint應用,歸根結底,雲幫能夠爲企業或者我的,打造簡單易用,基於openJDK的java程序開發與調試環境。而在雲市中發佈pinpoint,正是其中重要的一環。

雲市安裝

  • 從雲市安裝 :是在雲幫平臺上部署應用很是簡單的一種方式。這種部署方式對於像pinpoint這種多組件的複雜應用來講,最大程度的下降了部署難度與工做量。
  • 進入雲幫,選擇 從雲市安裝

  • 在搜索欄中搜索 pinpoint

  • 選擇 應用分組

  • 點擊 肯定 ,等待一小段時間後,應用就部署完成了

###訪問WEB-UIdocker

  • 咱們能夠經過訪問 pinpoint-web 應用,來進入到pinpoint的UI界面。

<center><img src="https://static.goodrain.com/images/acp/docs/bestpractice/Pinpoint/pinpoint-access1.png" style="border:1px solid #eee;max-width:100%"/></center>數據庫

  • 在咱們的默認設置中,pinpoint應用 已經監控了它自身的 collectorweb組件。在進入UI界面後,就能夠發現兩者已經存在於應用列表中了。

添加被監控的對象

  • 傳統架構下的pinpoint,須要在被監控的對象裏附加Agent,並經過修改配置文件使之生效。在雲幫平臺上,咱們將這兩個步驟也作了相應的簡化。
    • 好雨官方OpenJDK鏡像 爲基礎製做的應用,都默認集成了Pinpoint-Agent,不須要二次安裝。
    • 雲幫平臺利用設置 環境變量 的方式,代替了配置文件,鍵值對形式的環境變量很是簡單易用。
  • 下面以Tomcat爲例,介紹添加被監控對象的方法:選擇 好雨官方tomcat鏡像 部署

  • 點擊 高級設置

  • 添加 環境變量 以下:

  • 經過 添加依賴 關聯Pinpoint-Collector

  • 對於已部署的應用,也能夠經過 應用管理界面 中的 依賴設置 選項卡,來配置相應的服務依賴和環境變量。
  • 環境變量 詳解:
變量名 含義 默認值
ENABLE_APM 激活/關閉Agent的開關 false
APP_NAME pinpoint中應用的名稱 SERVICE_ID

DEMO實例:監控分析b3log-solo應用

solo簡介

  • solo 是一款由java編寫的開源博客軟件,雲幫在對其進行整合以後,將與pinpoint一道,同期在雲市中發佈。

效果展現

  • 在按上文中的說明配置了Pinpoint-Collector的服務依賴、打開ENABLE_APM開關後,就能夠在pinpoint的UI界面中發現它了。solo後端對接的MySQL數據庫也被pinpoint自動發現了。

  • 清晰的代碼級輸出,讓DEBUG工做事半功倍。

-END-後端

進一步瞭解Rainbond v3.5.1tomcat

相關文章
相關標籤/搜索