Sha256: 01faab51a0f62a64e21b790c1f677ee1319498882d63cf27d109eabaa78118a0

Contents?: true

Size: 861 Bytes

Versions: 4

Compression:

Stored size: 861 Bytes

Contents

# frozen_string_literal: true

module Mnemosyne
  module Probes
    module ActiveRecord
      module Query
        class Probe < ::Mnemosyne::Probe
          subscribe 'sql.active_record'

          # rubocop:disable Metrics/ParameterLists
          def call(trace, _name, start, finish, _id, payload)
            return if payload[:name] == 'SCHEMA' || payload[:name] == 'CACHE'

            start  = ::Mnemosyne::Clock.to_tick(start)
            finish = ::Mnemosyne::Clock.to_tick(finish)

            meta = {
              sql: payload[:sql]
            }

            span = ::Mnemosyne::Span.new 'db.query.active_record',
              start: start, finish: finish, meta: meta

            trace << span
          end
        end
      end
    end

    register 'ActiveRecord::Base',
      'active_record',
      ActiveRecord::Query::Probe.new
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
mnemosyne-ruby-1.0.1 lib/mnemosyne/probes/active_record/query.rb
mnemosyne-ruby-1.0.0 lib/mnemosyne/probes/active_record/query.rb
mnemosyne-ruby-0.2.0 lib/mnemosyne/probes/active_record/query.rb
mnemosyne-ruby-0.1.0 lib/mnemosyne/probes/active_record/query.rb