Class: Datadog::Pipeline::SpanFilter

Inherits:
Object
  • Object
show all
Defined in:
lib/ddtrace/pipeline/span_filter.rb

Overview

SpanFilter implements a processor that filters entire span subtrees

Instance Method Summary collapse

Constructor Details

#initialize(filter = nil, &block) ⇒ SpanFilter

Returns a new instance of SpanFilter.

Raises:

  • (ArgumentError)


5
6
7
8
9
10
11
# File 'lib/ddtrace/pipeline/span_filter.rb', line 5

def initialize(filter = nil, &block)
  callable = filter || block

  raise(ArgumentError) unless callable.respond_to?(:call)

  @criteria = filter || block
end

Instance Method Details

#call(trace) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/ddtrace/pipeline/span_filter.rb', line 13

def call(trace)
  black_list = trace.select(&method(:drop_it?))

  clean_trace(black_list, trace) while black_list.any?

  trace
end