warden:展示日志的工具,與中間節點warden-aggr建立socket connect連接,用zeromq sub模式接收消息后解壓縮再用print輸出消息,消息的 send 和 recv都用multipart模式,所以在warden上可以指定只看某一臺機器的日志.
sample code:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class Warden:
_sock = None def __init__(self, connectInfo): context = zmq.Context() self._sock = context.socket(zmq.SUB) self._sock.setsockopt(zmq.SUBSCRIBE, '') self._sock.connect(connectInfo) def loop(self, filter): while 1: msg = self._sock.recv_multipart() if cmp(msg[0], filter) != -1: print zlib.decompress(msg[1]), |
問題:
-定義和規范identity 目前只能通過機器過濾日志,一臺機器上通常有很多種日志,我們希望定義詳細的identity來區分和過濾日志.
-轉發模式 目前的過濾全是在warden上做的,就等于把所有日志收下來后不用就扔掉來過濾,我們希望使用類似訂閱的模式,客戶端發送一個訂閱消息來接收指定的日志,服務器收到訂閱消息才廣播日志,這樣能省很多網絡流量.
最后:
我們把warden定義成一個長期的基礎項目,可以不停的改進.
This entry was posted in 平臺工具 by sdhou. Bookmark the permalink.