in lib/elastic_apm/transaction.rb [43:87]
def initialize(
name = nil,
type = nil,
config:,
sampled: true,
sample_rate: 1,
context: nil,
trace_context: nil
)
@name = name
@type = type || DEFAULT_TYPE
@config = config
@span_frames_min_duration = config.span_frames_min_duration
@collect_metrics = config.collect_metrics?
@breakdown_metrics = config.breakdown_metrics?
@framework_name = config.framework_name
@transaction_max_spans = config.transaction_max_spans
@default_labels = config.default_labels
@sampled = sampled
@sample_rate = sample_rate
@context = context || Context.new
if @default_labels
Util.reverse_merge!(@context.labels, @default_labels)
end
unless (@trace_context = trace_context)
@trace_context = TraceContext.new(
traceparent: TraceContext::Traceparent.new(recorded: sampled),
tracestate: TraceContext::Tracestate.new(
sample_rate: sampled ? sample_rate : 0
)
)
end
@started_spans = 0
@dropped_spans = 0
@notifications = []
end