in lib/elastic_apm/spies/dynamo_db.rb [54:89]
def self.prepended(mod)
mod.api.operation_names.each do |operation_name|
define_method(operation_name) do |params = {}, options = {}|
context = ElasticAPM::Span::Context.new(
db: {
instance: config.region,
type: SUBTYPE,
statement: params[:key_condition_expression]
},
destination: {
address: config.endpoint.host,
port: config.endpoint.port,
service: {
name: SUBTYPE,
type: TYPE,
resource: SUBTYPE },
cloud: { region: config.region }
}
)
ElasticAPM.with_span(
ElasticAPM::Spies::DynamoDBSpy.span_name(operation_name, params),
TYPE,
subtype: SUBTYPE,
action: ACTION,
context: context
) do
ElasticAPM::Spies::DynamoDBSpy.without_net_http do
super(params, options)
end
end
end
end
end