module ElasticAPM::Spies::S3Spy::Ext
@api private
Public Class Methods
prepended(mod)
click to toggle source
Calls superclass method
# File lib/elastic_apm/spies/s3.rb, line 81 def self.prepended(mod) # Alias all available operations mod.api.operation_names.each do |operation_name| define_method(operation_name) do |params = {}, options = {}, &block| bucket_name = ElasticAPM::Spies::S3Spy.bucket_name(params) region = ElasticAPM::Spies::S3Spy.accesspoint_region(params) || config.region resource = "#{SUBTYPE}/#{bucket_name || 'unknown-bucket'}" context = ElasticAPM::Span::Context.new( destination: { service: { resource: resource }, cloud: { region: region } } ) ElasticAPM.with_span( ElasticAPM::Spies::S3Spy.span_name(operation_name, bucket_name), TYPE, subtype: SUBTYPE, action: ElasticAPM::Spies::S3Spy.formatted_op_name(operation_name), context: context ) do ElasticAPM::Spies::S3Spy.without_net_http do super(params, options, &block) end end end end end