class Sentry::Faraday::Instrumenter
def extract_request_info(env)
def extract_request_info(env) url = env[:url].scheme + "://" + env[:url].host + env[:url].path result = { method: env[:method].to_s.upcase, url: url } if Sentry.configuration.send_default_pii result[:query] = env[:url].query result[:body] = env[:body] end result end
def instrument(op_name, env, &block)
def instrument(op_name, env, &block) return block.call unless Sentry.initialized? Sentry.with_child_span(op: op_name, start_timestamp: Sentry.utc_now.to_f, origin: SPAN_ORIGIN) do |sentry_span| request_info = extract_request_info(env) if propagate_trace?(request_info[:url]) set_propagation_headers(env[:request_headers]) end res = block.call response_status = res.status if record_sentry_breadcrumb? record_sentry_breadcrumb(request_info, response_status) end if sentry_span set_span_info(sentry_span, request_info, response_status) end res end end