def register_timing(config): timing_modules = ['timing_urllib', 'timing_urllib2', 'timing_urllib3', 'timing_requests', 'timing_httplib', 'timing_pysolr', 'timing_chameleon', 'timing_mako', 'timing_jinja2', 'timing_pymongo', 'timing_redispy', 'timing_memcache', 'timing_django_templates'] for mod in timing_modules: min_time = config['timing'].get(mod.replace("timing_", '').lower()) if min_time is not False: log.debug('%s slow time:%s' % (mod, min_time or 'default')) e_callable = import_from_module( 'appenlight_client.timing.%s:add_timing' % mod) if e_callable: if min_time: e_callable(min_time) else: e_callable() else: log.debug('not tracking slow time:%s' % mod) db_modules = ['pg8000', 'psycopg2', 'MySQLdb', 'sqlite3', 'oursql', 'pyodbc', 'pypyodbc', 'cx_Oracle', 'kinterbasdb', 'postgresql', 'pymysql'] import appenlight_client.timing.timing_dbapi2 as dbapi2 for mod in db_modules: min_time = config['timing'].get('dbapi2_%s' % mod.lower()) log.debug('%s dbapi query time:%s' % (mod, min_time or 'default')) if min_time is not False: if min_time: dbapi2.add_timing(mod, min_time) else: dbapi2.add_timing(mod)
def register_logger(self, logger=logging.root): handler_cls = import_from_module('appenlight_client.ext.logging.logger:ThreadLocalHandler') log_handler = register_logging(logger, client_config=self.config, cls=handler_cls) level = LEVELS.get(self.config['logging_level'], logging.WARNING) log_handler.setLevel(level) self.log_handlers.append(log_handler)
def register_logger(self, logger=logging.root): handler_cls = import_from_module( 'appenlight_client.ext.logging.logger:ThreadLocalHandler') log_handler = register_logging(logger, client_config=self.config, cls=handler_cls) level = LEVELS.get(self.config['logging_level'], logging.WARNING) log_handler.setLevel(level) self.log_handlers.append(log_handler)
def register_hooks(self): for hook in self.hooks: if hook in self.hooks_blacklist: print 'blacklisted', hook continue try: e_callable = import_from_module('appenlight_client.hooks.%s:register' % hook) if e_callable: e_callable() except Exception, e: raise log.warning("Couln't attach hook: %s" % hook)
def register_hooks(self): for hook in self.hooks: if hook in self.hooks_blacklist: log.debug('blacklisted %s' % hook) continue try: e_callable = import_from_module( 'appenlight_client.hooks.%s:register' % hook) if e_callable: e_callable() except Exception: raise log.warning("Couln't attach hook: %s" % hook)
def reinitialize(self): self.filter_callable = lambda x: x if self.config['filter_callable']: try: parts = self.config['filter_callable'].split(':') _tmp = __import__(parts[0], globals(), locals(), [ parts[1], ], 0) self.filter_callable = getattr(_tmp, parts[1]) except ImportError as e: self.filter_callable = filter_callable msg = 'Could not import filter callable, using default, %s' % e log.error(msg) else: self.filter_callable = filter_callable self.unregister_logger() if self.config['logging'] and self.config['enabled']: self.register_logger() if self.config['slow_requests'] and self.config['enabled']: import appenlight_client.timing appenlight_client.timing.register_timing(self.config) self.hooks = ['hook_pylons'] # register hooks if self.config['enabled']: self.register_hooks() selected_transport = import_from_module(self.config['transport']) if not selected_transport: from appenlight_client.transports.requests import \ HTTPTransport as selected_transport msg = 'Could not import transport %s, using default, %s' % ( self.config['transport'], str(selected_transport)) log.error(msg) self.transport = selected_transport(self.config['transport_config'], self.config)
def reinitialize(self): self.filter_callable = lambda x: x if self.config['filter_callable']: try: parts = self.config['filter_callable'].split(':') _tmp = __import__(parts[0], globals(), locals(), [parts[1], ], 0) self.filter_callable = getattr(_tmp, parts[1]) except ImportError as e: self.filter_callable = filter_callable msg = 'Could not import filter callable, using default, %s' % e log.error(msg) else: self.filter_callable = filter_callable self.unregister_logger() if self.config['logging'] and self.config['enabled']: self.register_logger() if self.config['slow_requests'] and self.config['enabled']: import appenlight_client.timing appenlight_client.timing.register_timing(self.config) self.hooks = ['hook_pylons'] # register hooks if self.config['enabled']: self.register_hooks() selected_transport = import_from_module(self.config['transport']) if not selected_transport: from appenlight_client.transports.requests import \ HTTPTransport as selected_transport msg = 'Could not import transport %s, using default, %s' % ( self.config['transport'], str(selected_transport)) log.error(msg) self.transport = selected_transport(self.config['transport_config'], self.config)
def register_timing(config): timing_modules = [ 'timing_urllib', 'timing_urllib2', 'timing_urllib3', 'timing_requests', 'timing_httplib', 'timing_pysolr', 'timing_chameleon', 'timing_mako', 'timing_jinja2', 'timing_pymongo', 'timing_redispy', 'timing_memcache', 'timing_django_templates' ] for mod in timing_modules: min_time = config['timing'].get(mod.replace("timing_", '').lower()) if min_time is not False: log.debug('%s slow time:%s' % (mod, min_time or 'default')) e_callable = import_from_module( 'appenlight_client.timing.%s:add_timing' % mod) if e_callable: if min_time: e_callable(min_time) else: e_callable() else: log.debug('not tracking slow time:%s' % mod) db_modules = [ 'pg8000', 'psycopg2', 'MySQLdb', 'sqlite3', 'oursql', 'pyodbc', 'pypyodbc', 'cx_Oracle', 'kinterbasdb', 'postgresql', 'pymysql', 'pymssql' ] import appenlight_client.timing.timing_dbapi2 as dbapi2 for mod in db_modules: min_time = config['timing'].get('dbapi2_%s' % mod.lower()) log.debug('%s dbapi query time:%s' % (mod, min_time or 'default')) if min_time is not False: if mod == 'sqlite3' and not min_time: continue elif min_time: dbapi2.add_timing(mod, min_time) else: dbapi2.add_timing(mod)