class OpenCensus::Trace::Exporters::Datadog::SpanBuffer
Public Class Methods
new(max_size)
click to toggle source
# File lib/opencensus/trace/exporters/datadog/buffer.rb, line 6 def initialize(max_size) @max_size = max_size @spans = [] @mutex = Mutex.new() @closed = false end
Public Instance Methods
close()
click to toggle source
# File lib/opencensus/trace/exporters/datadog/buffer.rb, line 39 def close @mutex.synchronize do @closed = true end end
empty?()
click to toggle source
# File lib/opencensus/trace/exporters/datadog/buffer.rb, line 25 def empty? @mutex.synchronize do return @spans.empty? end end
pop()
click to toggle source
# File lib/opencensus/trace/exporters/datadog/buffer.rb, line 31 def pop @mutex.synchronize do spans = @spans @spans = [] return spans end end
push(span)
click to toggle source
# File lib/opencensus/trace/exporters/datadog/buffer.rb, line 13 def push(span) @mutex.synchronize do return if @closed len = @spans.length if len < @max_size || @max_size <= 0 return @spans << span else Datadog.log.error("[datadog-exporter] failed to write span into buffer due to exceeding by max buffer size") end end end