module Datadog::Pipeline
Public Class Methods
before_flush(*processors, &processor_block)
click to toggle source
# File lib/ddtrace/pipeline.rb, line 10 def self.before_flush(*processors, &processor_block) processors = [processor_block] if processors.empty? @mutex.synchronize do @processors.concat(processors) end end
process!(traces)
click to toggle source
# File lib/ddtrace/pipeline.rb, line 18 def self.process!(traces) @mutex.synchronize do traces .map(&method(:apply_processors!)) .select(&:any?) end end
processors=(value)
click to toggle source
# File lib/ddtrace/pipeline.rb, line 26 def self.processors=(value) @processors = value end
Private Class Methods
apply_processors!(trace)
click to toggle source
# File lib/ddtrace/pipeline.rb, line 30 def self.apply_processors!(trace) result = @processors.inject(trace) do |current_trace, processor| processor.call(current_trace) end result || [] rescue => e Datadog.logger.debug( "trace dropped entirely due to `Pipeline.before_flush` error: #{e}" ) [] end