self.prepended

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