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.