Dubbo 整合 Pinpoint 做分布式服務請求跟蹤

點擊鏈接加入QQ群 522720170(免費公開課、視頻應有盡有):https://jq.qq.com/?_wv=1027&k=5C08ATe

在使用Dubbo進行服務化或者整合應用后瓷蛙,假設(shè)某個服務后臺日志顯示有異常悼瓮,這個服務又被多個應用調(diào)用的情況下,我們通常很難判斷是哪個應用調(diào)用的艰猬,問題的起因是什么横堡,因此我們需要一套分布式跟蹤系統(tǒng)來快速定位問題,Pinpoint可以幫助我們快速定位問題姥宝。

什么是Pinpoint

Pinpoint是一個開源的 APM (Application Performance Management/應用性能管理)工具翅萤,用于基于java的大規(guī)模分布式系統(tǒng)。 仿照Google Dapper,Pinpoint通過跟蹤分布式應用之間的調(diào)用來提供解決方案套么,以幫助分析系統(tǒng)的總體結(jié)構(gòu)和內(nèi)部模塊之間如何相互聯(lián)系培己。

服務器地圖

ServerMap

通過可視化分布式系統(tǒng)的模塊和他們之間的相互聯(lián)系來理解系統(tǒng)拓撲。點擊某個節(jié)點會展示這個模塊的詳情胚泌,比如它當前的狀態(tài)和請求數(shù)量省咨。

實時活動線程圖表

Realtime Active Thread Chart

實時監(jiān)控應用內(nèi)部的活動線程。

請求/應答分布圖表

Request/Response Scatter Chart

長期可視化請求數(shù)量和應答模式來定位潛在問題玷室。通過在圖表上拉拽可以選擇請求查看更多的詳細信息零蓉。

調(diào)用棧

CallStack

在分布式環(huán)境中為每個調(diào)用生成代碼級別的可視圖,在單個視圖中定位瓶頸和失敗點穷缤。

巡查

Inspector

查看應用上的其他詳細信息敌蜂,比如CPU使用率,內(nèi)存/垃圾回收津肛,TPS章喉,和JVM參數(shù)。

支持模塊

JDK 6+

Tomcat 6 / 7 / 8身坐,Jetty 8/9秸脱,JBoss EAP 6,Resin 4部蛇,Websphere 6 / 7 / 8摊唇,Vertx 3.3 / 3.4 / 3.5

Spring,Spring Boot(嵌入式Tomcat涯鲁,Jetty)

Apache HTTP Client 3.x / 4.x巷查,JDK HttpConnector,GoogleHttpClient抹腿,OkHttpClient吮便,NingAsyncHttpClient

Thrift Client,Thrift Service幢踏,DUBBO PROVIDER,DUBBO CONSUMER

ActiveMQ许师,RabbitMQ

MySQL房蝉,Oracle,MSSQL微渠,CUBRID搭幻,POSTGRESQL,MARIA

Arcus逞盆,Memcached檀蹋,Redis,CASSANDRA

iBATIS云芦,MyBatis

DBCP俯逾,DBCP2贸桶,HIKARICP

gson,Jackson桌肴,Json Lib

log4j皇筛,Logback

部署

說下我的測試環(huán)境:hadoop-2.7.4 集群,hbase-1.3.1 集群坠七,zookeeper-3.4.9 單機水醋,一共四臺機器。為避免部分端口不通等可疑問題, 建議關(guān)閉防火墻

好消息彪置!咨詢QQ:2083503238拄踪,咨詢微信:qiangfans

小強性能測試班19年3月3號開課,年底前報名優(yōu)惠500元拳魁,課程大綱與介紹點擊文末【閱讀原文】

所有學員享受免費惶桐、不限次數(shù)、無限重學的權(quán)利直到學會為止的猛,拒絕限制次數(shù)耀盗、繳納重學費的惡心規(guī)矩。

公眾號內(nèi)回復6獲取詳情(不是本文回復)

下載

進入GitHub 找到需要的版本:https://github.com/naver/pinpoint/releases

wget https://github.com/naver/pinpoint/releases/download/1.7.3/pinpoint-agent-1.7.3.tar.gz

wget https://github.com/naver/pinpoint/releases/download/1.7.3/pinpoint-collector-1.7.3.war

wget https://github.com/naver/pinpoint/releases/download/1.7.3/pinpoint-web-1.7.3.war

wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.4.5/hbase-1.4.5-bin.tar.gz

準備環(huán)境

配置 JDK 環(huán)境 (筆者使用 Oracle 1.8, openJdk 可以)

搭建 Zookeeper 環(huán)境

搭建 Hbase (單節(jié)點即可)

在 Hbase/bin 下執(zhí)行./hbase shell hbase-create.hbase創(chuàng)建相關(guān)存儲結(jié)構(gòu)

準備 Tomcat 環(huán)境

準備可分布式部署的項目用于測試

修改 Pinpoint

pinpoint-collector-1.7.3.war

修改 WEB-INF\classes\hbase.properties 文件

hbase.client.host 設(shè)置為 hbase 所用的 zk 地址

修改 WEB-INF\classes\pinpoint-collector.properties 文件

cluster.zookeeper.address 修改為給 Pinpoint 準備的 zk 地址

pinpoint-web-1.7.3.war

修改 WEB-INF\classes\hbase.properties 文件

hbase.client.host 設(shè)置為 hbase 所用的 zk 地址

修改 WEB-INF\classes\pinpoint-web.properties 文件

cluster.zookeeper.address 修改為給 Pinpoint 準備的 zk 地址

部署 collector 和 web

將準備好的 tomcat 中 webapps 目錄清空

將上一步修好的兩個 war 包放置到 webapps

將pinpoint-web-1.7.3.war修改為ROOT.war

將pinpoint-collector-1.7.3.war修改為collector.war

啟動 Tomcat

查看 tomcat/logs 下的日志, 注意觀察有沒有連接不到 2181 端口的日志, 如果有, 可能是 war 中的配置沒有修改正確, 建議清空 tomcat 下 work卦尊、temp 文件夾后重試

部署 agent

安裝agent叛拷,不需要修改哪怕一行代碼

Pinpoint對性能的影響最小(資源使用量增加約3%)

將 pinpoint-agent-1.7.3.tar.gz 解壓,

把 pinpoint.config 文件中profiler.collector.ip屬性值修改為部署 collector 機器的主機名或 IP

注意: 每個項目所在的服務器都需要部署 agent

準備Dubbo示例程序

我的測試項目:https://github.com/souyunku/spring-boot-examples/tree/master/spring-boot-dubbo

配置application.properties岂却,修改地址zookeeper.connect=127.0.0.1:2181為自己的zk

mvn clean package

修改自己項目的啟動參數(shù)

需要添加三個啟動參數(shù)

-javaagent: 指向 agent 目錄下的 pinpoint-bootstrap-1.7.3.jar

-Dpinpoint.agentId:設(shè)置全局唯一標示 ID

-Dpinpoint.applicationName: 設(shè)置項目的名稱(如果同一項目部署兩臺實例,這兩臺的參數(shù)應該一致)

Tomcat 和 Jar 項目有不同的添加方式,可參考如下方式修改

Tomcat

找到 bin/catalina.sh 添加下面的代碼

CATALINA_OPTS="$CATALINA_OPTS -javaagent:$AGENT_PATH/pinpoint-bootstrap-1.7.3.jar"

CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=tomcat1"

CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=webcontroller"

SpringBoot

# DUBBO 提供者

java -javaagent:/opt/pinpoint-bootstrap-1.7.3.jar -Dpinpoint.agentId=dubbo-provider-1 -Dpinpoint.applicationName=dubbo-provider -jar dubbo-provider-1.0-SNAPSHOT.jar

# DUBBO 消費者

java -javaagent:/opt/pinpoint-bootstrap-1.7.3.jar -Dpinpoint.agentId=dubbo-consumer-1 -Dpinpoint.applicationName=dubbo-consumer -jar dubbo-consumer-1.0-SNAPSHOT.jar

在自己的項目添加完畢啟動后,即可登錄 web 后臺查看集群的狀態(tài), 跟蹤請求

測試

訪問消費方地址模擬用戶請求

http://localhost:8080/sayHello?name=souyunku

截圖

首頁

指定時間點的忿薇,選中區(qū)域的請求明細

請求響應明細和系統(tǒng)拓撲

視圖中定位瓶頸和失敗點

消費者機器的, CPU使用率躏哩,內(nèi)存/垃圾回收署浩,TPS,和JVM參數(shù)

參考:

https://segmentfault.com/a/1190000011290541

http://dubbo.apache.org/#!/blog/pinpoint.md?lang=en-us

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末扫尺,一起剝皮案震驚了整個濱河市筋栋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌正驻,老刑警劉巖弊攘,帶你破解...
    沈念sama閱讀 216,843評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異姑曙,居然都是意外死亡襟交,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評論 3 392
  • 文/潘曉璐 我一進店門伤靠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捣域,“玉大人,你說我怎么就攤上這事』烂罚” “怎么了迹鹅?”我有些...
    開封第一講書人閱讀 163,187評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長丘侠。 經(jīng)常有香客問我徒欣,道長,這世上最難降的妖魔是什么蜗字? 我笑而不...
    開封第一講書人閱讀 58,264評論 1 292
  • 正文 為了忘掉前任打肝,我火速辦了婚禮,結(jié)果婚禮上挪捕,老公的妹妹穿的比我還像新娘粗梭。我一直安慰自己,他們只是感情好级零,可當我...
    茶點故事閱讀 67,289評論 6 390
  • 文/花漫 我一把揭開白布断医。 她就那樣靜靜地躺著,像睡著了一般奏纪。 火紅的嫁衣襯著肌膚如雪鉴嗤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,231評論 1 299
  • 那天序调,我揣著相機與錄音醉锅,去河邊找鬼。 笑死发绢,一個胖子當著我的面吹牛硬耍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播边酒,決...
    沈念sama閱讀 40,116評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼经柴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了墩朦?” 一聲冷哼從身側(cè)響起坯认,我...
    開封第一講書人閱讀 38,945評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎氓涣,沒想到半個月后鹃操,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡春哨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,581評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了恩伺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赴背。...
    茶點故事閱讀 39,754評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出凰荚,到底是詐尸還是另有隱情燃观,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評論 5 344
  • 正文 年R本政府宣布便瑟,位于F島的核電站缆毁,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏到涂。R本人自食惡果不足惜脊框,卻給世界環(huán)境...
    茶點故事閱讀 41,068評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望践啄。 院中可真熱鬧浇雹,春花似錦、人聲如沸屿讽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽伐谈。三九已至烂完,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間诵棵,已是汗流浹背抠蚣。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留非春,地道東北人柱徙。 一個月前我還...
    沈念sama閱讀 47,797評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像奇昙,于是被迫代替她去往敵國和親护侮。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,654評論 2 354

推薦閱讀更多精彩內(nèi)容