Esempio n. 1
0
 def test_session_setup(self):
     update({'collector': {'session': 'collector_test'}})
     config = get_config()
     session_collection_name = SessionCollection.get_collection_name()
     col = SessionCollection(self.db[session_collection_name])
     self._start_server()
     time.sleep(.2)
     self.assertEqual(
         len(
             col.find({
                 'name': config.collector.session,
                 'start_time': {
                     '$exists': True
                 },
                 'end_time': {
                     '$exists': False
                 }
             })), 1)
     self._stop_server()
     time.sleep(.2)
     self.assertEqual(
         len(
             col.find({
                 'name': config.collector.session,
                 'start_time': {
                     '$exists': True
                 },
                 'end_time': {
                     '$exists': True
                 }
             })), 1)
Esempio n. 2
0
 def setUp(self):
     self.saved_config = get_config()
     for config in ['collector', 'index_profile_sink',
                    'query_profile_sink']:
         update({config: {'mongo_uri': 'mongodb://127.0.0.1/%s' %
                          (BaseTest.TEST_DB)}})
     self.client = pymongo.MongoClient()
     self.client.drop_database(self.__class__.TEST_DB)
     self.db = self.client[self.__class__.TEST_DB]
Esempio n. 3
0
 def test_session_setup(self):
     update({'collector': {'session': 'collector_test'}})
     config = get_config()
     session_collection_name = SessionCollection.get_collection_name()
     col = SessionCollection(self.db[session_collection_name])
     self._start_server()
     time.sleep(.2)
     self.assertEqual(len(col.find({'name': config.collector.session,
                                    'start_time': {'$exists': True},
                                    'end_time': {'$exists': False}})),
                      1)
     self._stop_server()
     time.sleep(.2)
     self.assertEqual(len(col.find({'name': config.collector.session,
                                    'start_time': {'$exists': True},
                                    'end_time': {'$exists': True}})),
                      1)
Esempio n. 4
0
def main():
    config = get_config()

    parser = ArgumentParser('run collector')

    parser.add_argument('-v', '--verbose', action='store_true',
                        help='be verbose [default: %(default)s]')
    parser.add_argument(
        '-u', '--uri', default='mongodb://127.0.0.1:27017/mongodrums',
        metavar='URI', help='the database to push collected profiling stats '
                            'to [default: %(default)s]')
    parser.add_argument(
        '-s', '--session', default=str(uuid.uuid1()), metavar='SESSION',
        help='name the current session [default: %(default)s]')
    parser.add_argument(
        '-p', '--pid-file', metavar='PATH', default='/tmp/md_collector.pid',
        help='pid file path [default: %(default)s]')
    parser.add_argument(
        '-l', '--log-file', metavar='PATH', default='/tmp/md_collector.log',
        help='log file path [default: %(default)s]')
    parser.add_argument(
        'action', default='foreground', metavar='ACTION',
        choices=['start', 'stop', 'restart', 'foreground'],
        help='control the daemon process [choices: %(choices)s; default: '
             '%(default)s]')
    parser.add_argument(
        '--port', default=config.collector.port, type=int, metavar='PORT',
        help='the port to listen on [default: %(default)s]')
    parser.add_argument(
        '--addr', default=config.collector.addr, metavar='ADDR',
        help='the address to listen on [default: %(default)s]')

    args = parser.parse_args()

    level = logging.DEBUG if args.verbose else logging.INFO
    logging.basicConfig(level=level)
    logger = logging.getLogger()
    logger.addHandler(
        logging.handlers.RotatingFileHandler(args.log_file, 'a', 2**20, 2))

    signal.signal(signal.SIGINT, signal_handler)
    signal.signal(signal.SIGTERM, signal_handler)

    run_collector(args)
Esempio n. 5
0
 def test_handle(self):
     config = get_config()
     sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
     addr = (config.collector.addr, config.collector.port)
     sink = _BufferSink()
     for i in xrange(5):
         sock.sendto('blah', addr)
     self._start_server([sink])
     # FIXME: adding an event signaling that a socket is bound and ready to
     #        receive data at the end of BaseServer.start does not seem to
     #        work, falling back to sleep for the time being
     time.sleep(1)
     for i in xrange(5):
         sock.sendto('blah', addr)
         time.sleep(.1)
     self._stop_server()
     for i in xrange(5):
         sock.sendto('blah', addr)
         time.sleep(.1)
     self.assertEqual([x[0] for x in sink.msgs], ['blah'] * 5)
Esempio n. 6
0
 def test_handle(self):
     config = get_config()
     sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
     addr = (config.collector.addr, config.collector.port)
     sink = _BufferSink()
     for i in xrange(5):
         sock.sendto('blah', addr)
     self._start_server([sink])
     # FIXME: adding an event signaling that a socket is bound and ready to
     #        receive data at the end of BaseServer.start does not seem to
     #        work, falling back to sleep for the time being
     time.sleep(1)
     for i in xrange(5):
         sock.sendto('blah', addr)
         time.sleep(.1)
     self._stop_server()
     for i in xrange(5):
         sock.sendto('blah', addr)
         time.sleep(.1)
     self.assertEqual([x[0] for x in sink.msgs], ['blah'] * 5)
Esempio n. 7
0
 def setUp(self):
     super(PusherTest, self).setUp()
     self._config = get_config()
     self._collector = _TestCollector((self._config.collector.addr,
                                       self._config.collector.port))