Beispiel #1
0
def main():
    from to_cube import CubeUploader
    cube = CubeUploader("http://localhost:1080/1.0/event/put")
    flush_lock = threading.Lock()

    state = {'skip': None, 'flushed_skip': None}

    def manual_flush():
        with flush_lock:
            cube.flush()
            state['flushed_skip'] = state['skip']

    flush_thread = FlushThread(manual_flush)
    flush_thread.start()

    try:
        while True:
            line = sys.stdin.readline()
            if not line:
                break
            event = json.loads(line)
            event['data']['logtail'] = True
            state['skip'] = event.pop('_skip')
            with flush_lock:
                cube.add(event)

    except KeyboardInterrupt:
        pass

    finally:
        flush_thread.stop = True
        manual_flush()
        if state['flushed_skip'] is not None:
            print state['flushed_skip']
        flush_thread.join()
Beispiel #2
0
def main():
    from apache_log import cube_events
    from to_cube import CubeUploader
    cube = CubeUploader("http://localhost:1080/1.0/event/put")
    log_file_name = sys.argv[1]
    for n, event in enumerate(cube_events(sys.stdin)):
        event['id'] = "%s/%d" % (log_file_name, n)
        cube.add(event)
    cube.flush()