def request_finished(self, app, response): if not self.app.debug or self.client.config.debug: rule = request.url_rule.rule if request.url_rule is not None else "" rule = build_name_with_http_method_prefix(rule, request) elasticapm.set_context( lambda: get_data_from_request( request, capture_body=self.client.config.capture_body in ("transactions", "all"), capture_headers=self.client.config.capture_headers, ), "request", ) elasticapm.set_context( lambda: get_data_from_response(response, capture_headers=self.client. config.capture_headers), "response") if response.status_code: result = "HTTP {}xx".format(response.status_code // 100) else: result = response.status elasticapm.set_transaction_name(rule, override=False) elasticapm.set_transaction_result(result, override=False) # Instead of calling end_transaction here, we defer the call until the response is closed. # This ensures that we capture things that happen until the WSGI server closes the response. response.call_on_close(self.client.end_transaction)
def request_finished(self, app, response): rule = request.url_rule.rule if request.url_rule is not None else "" rule = build_name_with_http_method_prefix(rule, request) request_data = get_data_from_request(request) response_data = get_data_from_response(response) elasticapm.set_transaction_data(request_data, 'request') elasticapm.set_transaction_data(response_data, 'response') if response.status_code: result = 'HTTP {}xx'.format(response.status_code // 100) else: result = response.status self.client.end_transaction(rule, result)
def request_finished(self, app, response): if not self.app.debug or self.client.config.debug: elasticapm.set_context( lambda: get_data_from_response(response, capture_headers=self.client.config.capture_headers), "response" ) if response.status_code: result = "HTTP {}xx".format(response.status_code // 100) else: result = response.status elasticapm.set_transaction_result(result, override=False) # Instead of calling end_transaction here, we defer the call until the response is closed. # This ensures that we capture things that happen until the WSGI server closes the response. response.call_on_close(self.client.end_transaction)
def request_finished(self, app, response): rule = request.url_rule.rule if request.url_rule is not None else "" rule = build_name_with_http_method_prefix(rule, request) request_data = lambda: get_data_from_request(request, capture_body=self.client. config.capture_body in ('transactions', 'all')) response_data = lambda: get_data_from_response(response) elasticapm.set_context(request_data, 'request') elasticapm.set_context(response_data, 'response') if response.status_code: result = 'HTTP {}xx'.format(response.status_code // 100) else: result = response.status self.client.end_transaction(rule, result)