lib/one_apm/transaction.rb in oneapm_rpm-1.2.0 vs lib/one_apm/transaction.rb in oneapm_rpm-1.2.1.rc
- old
+ new
@@ -32,11 +32,12 @@
:exceptions,
:filtered_params,
:jruby_cpu_start,
:process_cpu_start,
:http_response_code,
- :request
+ :request,
+ :ignore_frames
attr_reader :database_metric_name,
:guid,
:metrics,
:gc_start_snapshot,
@@ -67,10 +68,11 @@
@cat_path_hashes = nil
@ignore_this_transaction = false
@ignore_apdex = false
@ignore_enduser = false
+ @ignore_frames = options[:ignore_frames] || []
end
def start(state)
return if !state.is_execution_traced?
@@ -94,10 +96,12 @@
else
name = @frozen_name
trace_options = TRACE_OPTIONS_UNSCOPED
end
+ trace_options = TRACE_IGNORE_OPTIONS if !ignore_frames.empty? && ignore_frames.include?(outermost_frame.name)
+
# These metrics are recorded here instead of in record_summary_metrics
# in order to capture the exclusive time associated with the outer-most
# TT node.
if needs_middleware_summary_metrics?(name)
summary_metrics_with_exclusive_time = MIDDLEWARE_SUMMARY_METRICS
@@ -229,10 +233,9 @@
def create_nested_frame(state, category, options)
@has_children = true
if options[:filtered_params] && !options[:filtered_params].empty?
@filtered_params = options[:filtered_params]
end
-
frame_stack.push OneApm::Support::MethodTracer::Helpers.trace_execution_scoped_header(state, Time.now.to_f)
name_last_frame(options[:transaction_name])
set_default_transaction_name(options[:transaction_name], category)
end