Pinpoint源碼解析(二)

? ? ? 綜合來看,pinpoint的源代碼主要由以下三部分組成:1宪哩、pinpoint Agent拾氓,這是數(shù)據(jù)的采集部分槐壳;2舶斧、pinpoint collector克滴,這是數(shù)據(jù)的額收集部分罐栈,并將數(shù)據(jù)存到Hbase中豪嗽;3媒役、pinpoint web祝谚,這是數(shù)據(jù)的圖像化展示部分,將結(jié)果數(shù)據(jù)展示到問界面以便監(jiān)控酣衷。

下面介紹 pinpoint-Agent部分:


圖1 項(xiàng)目結(jié)構(gòu)

1交惯、程序的入口是在PinpointBootStrap文件的permain函數(shù),這部分如果不懂得話可以查看java instrument部分穿仪,只要在監(jiān)控程序的VM option加入以下席爽,就可加入一個(gè)探針,探針的Agentid=pp20161122,applicationName=MyTestPP啊片。

-javaagent:E:/Java_Web/pinpoint-agent/target/pinpoint-bootstrap-1.6.1.jar -Dpinpoint.agentId=pp20161122 -Dpinpoint.applicationName=MyTestPP

2只锻、在permain函數(shù)中定義了一個(gè)classPathResolver,這是一個(gè)類路徑解析類紫谷,從該類中可以讀取Java類路徑(java.class.path)齐饮、pinpoint-bootstrap-1.6.1.jar、pinpoint-commons-1.6.1.jar笤昨、pinpoint-bootstrap-core-1.6.1.jar祖驱、pinpoint-bootstrap-core-optional-1.6.1.jar、pinpoint-annotations-1.6.1.jar以及文件后綴屬性瞒窒,這幾個(gè)文件都是BootstrapJarFile捺僻,最后都加入到instrumentation中,最后執(zhí)行newPinpointStarter(agentArgsMap,bootstrapJarFile,classPathResolver,instrumentation)實(shí)例化PinpointStarter,之后啟動(dòng)Agent開始監(jiān)控匕坯。

3束昵、在PinpointStarter類中的start函數(shù)中,首先獲取agentId葛峻、applicationName锹雏,然后解析插件路徑,config文件路徑术奖、lib文件庫逼侦,最后設(shè)置實(shí)例化啟動(dòng)類,初始化類參數(shù)腰耙,最后啟動(dòng)類,這個(gè)啟動(dòng)類就是DefaultAgent類铲球。

4挺庞、在DefaultAgent類中,主要是定義this.applicationContext = newApplicationContext(agentOption,interceptorRegistryBinder);這句實(shí)例化應(yīng)用內(nèi)容稼病,在start函數(shù)中啟動(dòng)applicationContext选侨,實(shí)際上時(shí)調(diào)用了DefaultApplicationContext的start函數(shù),這個(gè)start函數(shù)中有兩句話this.agentInfoSender.start() 啟動(dòng)Agent信息發(fā)送;this.agentStatMonitor.start(); 啟動(dòng)Agent狀態(tài)監(jiān)控然走。

5援制、agentInfoSender類中定義了一個(gè)scheduleWithFixedDelay線程池,handel內(nèi)容主要是AgentInfoSender.this.dataSender.request(this.agentInfo, this.agentInfoSenderListener);這句話芍瑞,其中AgentInfo是通過createTAgentInfo獲取的監(jiān)控?cái)?shù)據(jù)晨仑,包括createTServiceInfo還有createTJvmInfo,agentInfoSenderListener是一個(gè)發(fā)送監(jiān)聽器拆檬。具體的通訊過程是通過netty Thrift實(shí)現(xiàn)的洪己。agentStatMonitor類中定義了一個(gè)scheduleAtFixedRate線程池,處理的內(nèi)容主要是發(fā)送狀態(tài)信息竟贯。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末答捕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子屑那,更是在濱河造成了極大的恐慌拱镐,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件持际,死亡現(xiàn)場離奇詭異沃琅,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)选酗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門阵难,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人芒填,你說我怎么就攤上這事呜叫】辗保” “怎么了?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵朱庆,是天一觀的道長盛泡。 經(jīng)常有香客問我,道長娱颊,這世上最難降的妖魔是什么傲诵? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮箱硕,結(jié)果婚禮上拴竹,老公的妹妹穿的比我還像新娘。我一直安慰自己剧罩,他們只是感情好栓拜,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著惠昔,像睡著了一般幕与。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上镇防,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天啦鸣,我揣著相機(jī)與錄音,去河邊找鬼来氧。 笑死诫给,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的啦扬。 我是一名探鬼主播蝙搔,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼考传!你這毒婦竟也來了吃型?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤僚楞,失蹤者是張志新(化名)和其女友劉穎勤晚,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泉褐,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赐写,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了膜赃。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挺邀。...
    茶點(diǎn)故事閱讀 40,505評論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出端铛,到底是詐尸還是另有隱情泣矛,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布禾蚕,位于F島的核電站您朽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏换淆。R本人自食惡果不足惜哗总,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望倍试。 院中可真熱鬧讯屈,春花似錦、人聲如沸县习。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽准颓。三九已至,卻和暖如春棺妓,著一層夾襖步出監(jiān)牢的瞬間攘已,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工怜跑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留样勃,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓性芬,卻偏偏與公主長得像峡眶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子植锉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評論 2 359

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理辫樱,服務(wù)發(fā)現(xiàn),斷路器俊庇,智...
    卡卡羅2017閱讀 134,701評論 18 139
  • 一狮暑、技術(shù)概述 1.1、架構(gòu)組成 Pinpoint 主要由 3 個(gè)組件外加 Hbase 數(shù)據(jù)庫組成辉饱,三個(gè)組件分別為:...
    我是嘻哈大哥閱讀 7,894評論 0 8
  • (一)Java部分 1搬男、列舉出JAVA中6個(gè)比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,114評論 0 62
  • 先制定目標(biāo),然后根據(jù)目標(biāo)來選擇達(dá)成的方法褐奴,而不是根據(jù)常用做法直接去干成了事按脚。 去跟一些公司老板聊天,我常常聽他們說...
    你的超人不會(huì)飛閱讀 502評論 0 0
  • 有時(shí)候我們走到一個(gè)時(shí)裝屋的時(shí)候歉糜,很好奇的進(jìn)入欣賞一下乘寒!可是卻發(fā)現(xiàn)美麗的衣服數(shù)不勝數(shù)!但就是沒有自己合適的那一件匪补!于...
    笑看千秋閱讀 358評論 0 0