示例#1
0
 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)
示例#2
0
 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)
示例#3
0
 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)
示例#4
0
 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)