def extract(self, *args, **kwargs): try: object = meth(self, *args, **kwargs) user = self.get('AUTHENTICATED_USER') username = user.getUserName() if username == 'Anonymous User': partition = 'Anonymous' else: partition = 'Authenticated' kv = {'Partition': partition, 'Class': object.__class__} # Old school CMF style page template if isinstance(object, PageTemplate): kv['Action'] = object.getId() kv['Template'] = object.pt_source_file() parent = object.getParentNode() kv['Controller'] = parent.meta_type # Z3 style views elif isinstance(object, BrowserView): kv['Action'] = object.__name__ if hasattr(object.context, 'meta_type'): kv['Controller'] = object.context.meta_type if 'Controller' not in kv: kv['Controller'] = 'Unknown' oboe.log('info', None, keys=kv, store_backtrace=False) return object except: raise
def AsyncHTTPClient_start(request): """ takes 'request' param, which is the outgoing HTTPRequest, not the request currently being handled """ # this is called from AsyncHTTPClient.fetch(), which runs from the RequestHandler's context oboe.log("entry", "cURL", keys={'cURL_URL':request.url, 'Async':True}) ctx = oboe.Context.get_default() if hasattr(request, 'headers'): if (hasattr(request.headers, '__setitem__')): # could be dict or tornado.httputil.HTTPHeaders request.headers['X-Trace'] = str(ctx) # add X-Trace header to outgoing request request._oboe_ctx = ctx.copy()
def process_view(self, request, view_func, view_args, view_kwargs): if not oboe.Context.get_default().is_valid(): return try: kvs = {'Controller': view_func.__module__, # XXX Not Python2.4-friendly 'Action': view_func.__name__ if hasattr(view_func, '__name__') else None} oboe.log('process_view', None, keys=kvs, store_backtrace=False) except Exception, e: print >> sys.stderr, "Oboe middleware error:", self._singleline(e)
def AsyncHTTPClient_start(request): """ takes 'request' param, which is the outgoing HTTPRequest, not the request currently being handled """ # this is called from AsyncHTTPClient.fetch(), which runs from the RequestHandler's context oboe.log("entry", "cURL", keys={'cURL_URL': request.url, 'Async': True}) ctx = oboe.Context.get_default() if hasattr(request, 'headers'): if (hasattr(request.headers, '__setitem__') ): # could be dict or tornado.httputil.HTTPHeaders request.headers['X-Trace'] = str( ctx) # add X-Trace header to outgoing request request._oboe_ctx = ctx.copy()
def wrapper(*f_args, **f_kwargs): ret = func(*f_args, **f_kwargs) try: conn_obj = f_args[0] if 'path' in dir(conn_obj): host = 'localhost' else: host = conn_obj.host + ':' + str(conn_obj.port) oboe.log('info', layer_name, keys={'RemoteHost': host}, store_backtrace=oboe._collect_backtraces('redis')) except Exception, e: print >> sys.stderr, "Oboe error: %s" % e
def wrapper(*f_args, **f_kwargs): ret = func(*f_args, **f_kwargs) try: args = {'KVKey' : f_args[1]} (host, _) = ret if host: if host.family == socket.AF_INET: args['RemoteHost'] = host.ip elif host.family == socket.AF_UNIX: args['RemoteHost'] = 'localhost' oboe.log('info', layer_name, keys=args, store_backtrace=oboe._collect_backtraces('memcache')) except Exception, e: print >> sys.stderr, "Oboe error: %s" % e
def extract(self, *args, **kwargs): try: object = meth(self, *args, **kwargs) user = self.get('AUTHENTICATED_USER') username = user.getUserName() if username == 'Anonymous User': partition = 'Anonymous' else: partition = 'Authenticated' if detailed_partition: partition = "%s %s %s" % (partition, SYSINFO['hostname'], SYSINFO['procname']) kv = {'Partition': partition, 'Class': object.__class__} # Old school CMF style page template if isinstance(object, PageTemplate): kv['Action'] = object.getId() kv['Template'] = object.pt_source_file() parent = object.getParentNode() kv['Controller'] = parent.meta_type # Z3 style views elif isinstance(object, BrowserView): kv['Action'] = object.__name__ if hasattr(object.context, 'meta_type'): kv['Controller'] = object.context.meta_type if 'Controller' not in kv: kv['Controller'] = 'Unknown' oboe.log('info', None, keys=kv, store_backtrace=False) return object except: raise
def extract(self, key): kv = {'KVOp': 'get', 'KVKey': key} oboe.log('entry', 'memoize', keys=kv, store_backtrace=False) try: val = meth(self, key) kv = {'KVHit': True} oboe.log('exit', 'memoize', keys=kv, store_backtrace=False) return val except: kv = {'KVHit': False} oboe.log('exit', 'memoize', keys=kv, store_backtrace=False) raise