lib/new_relic/agent/datastores.rb in newrelic_rpm-3.16.0.318 vs lib/new_relic/agent/datastores.rb in newrelic_rpm-3.16.1.320

- old
+ new

@@ -43,13 +43,15 @@ visibility = NewRelic::Helper.instance_method_visibility(clazz, method_name) alias_method method_name_without_newrelic, method_name define_method(method_name) do |*args, &blk| - metrics = MetricHelper.metrics_for(product, operation) - NewRelic::Agent::MethodTracer.trace_execution_scoped(metrics) do + segment = NewRelic::Agent::Transaction.start_datastore_segment(product, operation) + begin send(method_name_without_newrelic, *args, &blk) + ensure + segment.finish end end send visibility, method_name send visibility, method_name_without_newrelic @@ -101,21 +103,19 @@ # @api public # def self.wrap(product, operation, collection = nil, callback = nil) return yield unless operation - metrics = MetricHelper.metrics_for(product, operation, collection) - scoped_metric = metrics.first - NewRelic::Agent::MethodTracer.trace_execution_scoped(metrics) do - t0 = Time.now if callback - begin - result = yield - ensure - if callback - elapsed_time = (Time.now - t0).to_f - callback.call(result, scoped_metric, elapsed_time) - end + segment = NewRelic::Agent::Transaction.start_datastore_segment(product, operation, collection) + + begin + result = yield + ensure + if callback + elapsed_time = (Time.now - segment.start_time).to_f + callback.call(result, segment.name, elapsed_time) end + segment.finish end end # @!group Capturing query / statement text