Beispiel #1
0
    if (len(args) != 0):
        parser.print_help()
        sys.exit(2)
    log_path = options.log_path
    expected_msg_count  = options.expected_msg_count

    print "zmq client log analyser initiated..."
    print "Sifting the log directory..."
    all_files = ["%s/%s" % (log_path, f) for f in listdir(log_path) if isfile(join(log_path, f))]
    print "Analysing %d zmq client files" % len(all_files)
    #print all_files

    # extract message info from each client file
    client_perf_info = {}
    log_file = "/tmp/py_analyser"
    sys_cmd = PySysCommand("rm -rf %s" % log_file)
    sys_cmd.run(no_assert=True)
    log = init_logger(log_file)
    print "Dumping stats to %s" % log_file
    for zmq_file in all_files:
        with open(zmq_file) as f:
            content = f.read().splitlines()
            index_list = []
            for msg_info in content:
                msg_info = msg_info.split(",")
                # msg_info format:
                # ['client_id=7fe65cb21c18', 'latency=0.0101451873779', 'total_runtime=22.126667', 'index=999', 'messagedata=msg999']
                if len(msg_info) < 5:
                    print "Malformed message... (this is the most useless message ever printed by this program)"
                client_id = msg_info[0].split("=")[1]
                t_time  = msg_info[2].split("=")[1]
Beispiel #2
0
    # NOTE: currently works with only one SUB server
    for ip_port in server_ip_port_list:
        server_ip = ip_port.split(":")[0]
        port = int(ip_port.split(":")[1])
        print "SUB client connecting to PUB server at [%s:%s]" % (server_ip, port)
        socket.connect ("tcp://%s:%s" % (server_ip, port))
        print "SUB client succesfully connected to PUB server at [%s:%s]" % (server_ip, port)
        socket.setsockopt(zmq.SUBSCRIBE, topicfilter)
        # Ideally socket will have a method to return client id, skimming through
        # /usr/lib/python2.7/dist-packages/zmq/sugar/socket.py didnt yield a quick soln.. hacking...
        client_id = str(socket)
        client_id = client_id[client_id.rfind("0x") + 2:len(client_id) - 1]
        print "Client id [%s] " % client_id

    # init perf logger
    sys_cmd = PySysCommand("mkdir -p /tmp/zmq_client_logs")
    sys_cmd.run()
    perf_log_file = "/tmp/zmq_client_logs/%s.log" % client_id
    log = init_logger(perf_log_file)
    runtime = 0
    print "Client iniating recv"
    while True:
        st_time = time.time()
        string = socket.recv()
        end_time = time.time()
        latency = end_time - st_time
        runtime += latency
        index, messagedata = string.split()
        print index, messagedata
        log.info("client_id=%s,latency=%s,total_runtime=%f,index=%s,messagedata=%s", client_id, latency, runtime, index, messagedata)