python 應(yīng)用thrift---- thrift的監(jiān)控fb303 - import coding_dog ---- by 堅(jiān)毅的刀刀 - 博客大巴
ython 應(yīng)用thrift---- thrift的監(jiān)控fb303 - [ coding ]
2011-08-18
版權(quán)聲明 :轉(zhuǎn)載時(shí)請(qǐng)以超鏈接形式標(biāo)明文章原始出處和作者信息及 本聲明
http://shenguanpu.blogbus.com/logs/156741276.html
fb303 ?在thrift的源碼包 contrib之中
* What does it provide? *
A standard interface to monitoring, dynamic options and configuration,
uptime reports, activity, etc.也就是說(shuō)fb303提供了幾種接口方法,而并沒(méi)有默認(rèn)實(shí)現(xiàn)(很坑爹)有了fb303不需要在自己的thrift servcie 接口里去聲明,只需要自動(dòng)生成的processor繼承fb303的FacebookService.Processor ?但需要自己寫(xiě)handler 去處理接口方法
fb303庫(kù)結(jié)構(gòu)(需要編譯并安裝,步驟類似thrift):
- constants 和thrift數(shù)據(jù)類型相同
- ttypes 定義 fb_status
- FacebookBase ?Iface的空實(shí)現(xiàn)
- FacebookService ?A clinet 訪問(wèn)thrift服務(wù),獲取結(jié)果 ?B IFace標(biāo)準(zhǔn)基礎(chǔ)服務(wù) C Processor ?序列化代碼
?
調(diào)用過(guò)程:1 做一個(gè)client ?2 去調(diào)用服務(wù)器的handler ?3 服務(wù)器把handler得到的服務(wù)信息 訪問(wèn)數(shù) 生存時(shí)間 cpu狀況 通過(guò)fb303接口序列化并返回給客戶端。。。
- 修改fb303_scripts中的示例客戶端fb303_simple_mgmt.py
class Fb303Client(FacebookService.Client, CMyClient):
? pass
fb303_client = Fb303Client(protocol, protocol)
protocol 按需要更改- 修改 domain ServerNameExchange.py
? from fb303 import *
?
class Processor(Iface, TProcessor) --> class Processor(Iface, FacebookService.Processor):
Process最終調(diào)用handler做處理- handler增加相關(guān)方法:
def getStatusDetails(self):
? ? ? return " i am very fine!"
def getStatus(self):
? ? ? return 1cpu使用情況可分析 /proc/stat ?內(nèi)容 獲得結(jié)果
綜上,還是用monit做監(jiān)控吧,不用自己添加額外代碼。。。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
