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)
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]
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)
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)
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)
def setUp(self): super(PusherTest, self).setUp() self._config = get_config() self._collector = _TestCollector((self._config.collector.addr, self._config.collector.port))