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