class Datadog::Tracing::Flush::Base
@abstract
unaffected.
removed from trace_op
as a side effect. Unfinished spans are
Only finished spans are consumed. Any spans consumed are
the provided {TraceSegment}.
Consumes and returns a {TraceSegment} to be flushed, from
def consume!(trace_op)
-
(TraceSegment)
- trace to be flushed, or +nil+ if the trace is not finished
Parameters:
-
trace_op
(TraceOperation
) --
def consume!(trace_op) return unless flush?(trace_op) get_trace(trace_op) end
def flush?(trace_op)
- Abstract: -
def flush?(trace_op) raise NotImplementedError end
def get_trace(trace_op)
-
(TraceSegment)
-
def get_trace(trace_op) trace_op.flush! do |spans| spans.select! { |span| single_sampled?(span) } unless trace_op.sampled? spans end end
def single_sampled?(span)
Single Span Sampling has chosen to keep this span
def single_sampled?(span) span.get_metric(Sampling::Span::Ext::TAG_MECHANISM) == Sampling::Ext::Mechanism::SPAN_SAMPLING_RATE end