def instrument_ensure_index
::Mongo::Collection.class_eval do
def ensure_index_with_new_relic_trace(spec, opts = {}, &block)
segment = new_relic_start_segment :ensureIndex, new_relic_default_payload
begin
result = NewRelic::Agent.disable_all_tracing do
ensure_index_without_new_relic_trace(spec, opts, &block)
end
spec = case spec
when Array
Hash[spec]
when String, Symbol
{ spec => 1 }
else
spec.dup
end
new_relic_notice_statement(segment.start_time, spec, :ensureIndex) if segment
result
ensure
segment.finish if segment
end
end
alias_method :ensure_index_without_new_relic_trace, :ensure_index
alias_method :ensure_index, :ensure_index_with_new_relic_trace
end
end