Sha256: 62abde8777498e9bdaceb568f8224fbcec9291dcb7b836471e52559ae625be47

Contents?: true

Size: 1.55 KB

Versions: 24

Compression:

Stored size: 1.55 KB

Contents

# encoding: utf-8
# This file is distributed under New Relic's license terms.
# See https://github.com/newrelic/rpm/blob/master/LICENSE for complete details.

module SequelHelpers
  def setup
    super

    DB.extension :newrelic_instrumentation

    NewRelic::Agent.drop_buffered_data
  end

  def teardown
    super

    NewRelic::Agent.shutdown
  end
	#
  # Helpers
  #

  # Pattern to match the column headers of a Sqlite explain plan
  SQLITE_EXPLAIN_PLAN_COLUMNS_RE =
    %r{\|addr\s*\|opcode\s*\|p1\s*\|p2\s*\|p3\s*\|p4\s*\|p5\s*\|comment\s*\|}

  # This is particular to sqlite plans currently. To abstract it up, we'd need to
  # be able to specify a flavor (e.g., :sqlite, :postgres, :mysql, etc.)
  def assert_node_has_explain_plan( node, msg=nil )
    msg = "Expected #{node.inspect} to have an explain plan"
    assert_block( msg ) { node.params[:explain_plan].join =~ SQLITE_EXPLAIN_PLAN_COLUMNS_RE }
  end

  def last_node_for(options={})
      in_transaction('sandwiches/index') do
        yield
      end
      sample = NewRelic::Agent.instance.transaction_sampler.last_sample
      sample.prepare_to_send!
      last_node(sample)
  end

  def last_node(txn_sample)
    l_node = nil
    txn_sample.root_node.each_node do |node|
      l_node = node
    end
    l_node
  end

  def product_name
    if defined?(RUBY_ENGINE) && RUBY_ENGINE == "jruby"
      "JDBC"
    else
      "SQLite"
    end
  end

  def assert_datastore_metrics_recorded_exclusive(metrics, options = {})
    assert_metrics_recorded_exclusive(metrics, {:filter => /^Datastores/}.update(options))
  end
end

Version data entries

24 entries across 24 versions & 2 rubygems

Version Path
newrelic_rpm-4.1.0.333 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-4.0.0.332 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.18.1.330 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.18.0.329 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.17.2.327 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.17.1.326 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.17.0.325 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.16.3.323 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.16.2.321 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.16.1.320 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.16.0.318 test/multiverse/suites/sequel/sequel_helpers.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/newrelic_rpm-3.15.2.317/test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.15.2.317 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.15.1.316 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.15.0.314 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.14.3.313 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.14.2.312 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.14.1.311 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.14.0.305 test/multiverse/suites/sequel/sequel_helpers.rb
newrelic_rpm-3.13.2.302 test/multiverse/suites/sequel/sequel_helpers.rb