class HttpLogger
def perform(http, request, request_body)
def perform(http, request, request_body) start_time = Time.now tags = {} response = yield rescue => ex tags = tags.merge({error_type: ex.class}) raise ensure values = {response_time: ((Time.now - start_time)*1000).round(2)} if require_logging?(http, request) tags = tags.merge({endpoint: http.address, method: request.method}) log_request_url(http, request, start_time) log_request_body(request) log_request_headers(request) if defined?(response) && response tags = tags.merge({status: response.code.to_i}) log_response_code(response) log_response_headers(response) log_response_body(response.body) end ZuoraConnect::AppInstance.write_to_telegraf(direction: :outbound, tags: tags, values: values) end end