def initiate_request_monitoring(request): # Creates a new transaction and associates it with the request. # We always use the default application specified in the agent # configuration. application = application_instance() # We need to fake up a WSGI like environ dictionary with the key # bits of information we need. environ = request_environment(request) # We now start recording the actual web transaction. purge_current_transaction() transaction = WebTransaction(application, environ) if not transaction.enabled: return None transaction.__enter__() # Immediately purge the transaction from the cache, so we don't associate # Tornado internals inappropriately with this transaction. purge_current_transaction() # We also need to add a reference to the request object in to the # transaction object so we can later access it in a deferred. We # need to use a weakref to avoid an object cycle which may prevent # cleanup of the transaction. transaction._nr_current_request = weakref.ref(request) # Records state of transaction transaction._is_finalized = False transaction._ref_count = 0 # For requests that complete normally, a transaction can only be closed # after the `finish()` method is called on both the `_ServerRequestAdapter` # and the `RequestHandler`. transaction._request_handler_finalize = False transaction._server_adapter_finalize = False # Record framework information for generation of framework metrics. import tornado if hasattr(tornado, 'version_info'): version = '.'.join(map(str, tornado.version_info)) else: version = None transaction.add_framework_info('Tornado/ASYNC', version) return transaction
def initiate_request_monitoring(request): # Creates a new transaction and associates it with the request. # We always use the default application specified in the agent # configuration. application = application_instance() # We need to fake up a WSGI like environ dictionary with the key # bits of information we need. environ = request_environment(request) # We now start recording the actual web transaction. purge_current_transaction() transaction = WebTransaction(application, environ) if not transaction.enabled: return None transaction.__enter__() # Immediately purge the transaction from the cache, so we don't associate # Tornado internals inappropriately with this transaction. purge_current_transaction() # We also need to add a reference to the request object in to the # transaction object so we can later access it in a deferred. We # need to use a weakref to avoid an object cycle which may prevent # cleanup of the transaction. transaction._nr_current_request = weakref.ref(request) # Records state of transaction transaction._is_finalized = False transaction._ref_count = 0 # For server requests We only allow the transaction to be closed when # either 'finish' or 'on_connection_close' is called on an # associated HTTPMessageDelegate. transaction._can_finalize = False # Record framework information for generation of framework metrics. import tornado if hasattr(tornado, 'version_info'): version = '.'.join(map(str, tornado.version_info)) else: version = None transaction.add_framework_info('Tornado/ASYNC', version) return transaction
def initiate_request_monitoring(request): # Creates a new transaction and associates it with the request. # We always use the default application specified in the agent # configuration. application = application_instance() # We need to fake up a WSGI like environ dictionary with the key # bits of information we need. environ = request_environment(application, request) # We now start recording the actual web transaction. purge_current_transaction() transaction = WebTransaction(application, environ) transaction.__enter__() # Immediately purge the transaction from the cache, so we don't associate # Tornado internals inappropriately with this transaction. purge_current_transaction() # We also need to add a reference to the request object in to the # transaction object so we can later access it in a deferred. We # need to use a weakref to avoid an object cycle which may prevent # cleanup of the transaction. transaction._nr_current_request = weakref.ref(request) # Records state of transaction transaction._is_finalized = False transaction._ref_count = 0 # For server requests We only allow the transaction to be closed when # either 'finish' or 'on_connection_close' is called on an # associated HTTPMessageDelegate. transaction._can_finalize = False # Record framework information for generation of framework metrics. import tornado if hasattr(tornado, 'version_info'): version = '.'.join(map(str, tornado.version_info)) else: version = None transaction.add_framework_info('Tornado/ASYNC', version) return transaction