Sha256: 1353ab964ae1b52f7c9cf4a3e810008fb5d4f38c6a70f5e2f5102161ddebce26
Contents?: true
Size: 1003 Bytes
Versions: 14
Compression:
Stored size: 1003 Bytes
Contents
# frozen_string_literal: true module ElasticAPM # @api private module Spies # @api private class HTTPSpy # rubocop:disable Metrics/MethodLength def install ::HTTP::Client.class_eval do alias perform_without_apm perform def perform(req, options) unless (transaction = ElasticAPM.current_transaction) return perform_without_apm(req, options) end method = req.verb.to_s.upcase host = req.uri.host name = "#{method} #{host}" type = "ext.http_rb.#{method}" ElasticAPM.with_span name, type do |span| trace_context = span&.trace_context || transaction.trace_context req['Elastic-Apm-Traceparent'] = trace_context.to_header perform_without_apm(req, options) end end end end # rubocop:enable Metrics/MethodLength end register 'HTTP', 'http', HTTPSpy.new end end
Version data entries
14 entries across 14 versions & 1 rubygems