class OpenCensus::Trace::Exporters::Datadog
Constants
- DEFAULT_SERVICE
Public Class Methods
log()
click to toggle source
# File lib/opencensus/trace/exporters/datadog.rb, line 15 def self.log unless defined? @logger @logger = ::Logger.new(STDOUT) @logger.level = ::Logger::WARN end @logger end
new(options = {})
click to toggle source
# File lib/opencensus/trace/exporters/datadog.rb, line 23 def initialize(options = {}) # create HTTP client for sending spans do Datadog Agent agent_hostname = options.fetch(:agent_hostname, nil) port = options.fetch(:port, nil) @transport = Transport.new(agent_hostname, port) # worker parameters @max_buffer_size = options.fetch(:buffer_size, 1000) @flush_interval = options.fetch(:flush_interval, 1) # traces metadata @service_name = options.fetch(:service, DEFAULT_SERVICE) # each processes have one worker thread @mutex_after_fork = Mutex.new @pid = nil @worker = nil end
Public Instance Methods
export(spans)
click to toggle source
# File lib/opencensus/trace/exporters/datadog.rb, line 53 def export(spans) return nil if spans.nil? || spans.empty? # create worker thread if not exist in this process pid = Process.pid if pid != @pid @mutex_after_fork.synchronize do start() if pid != @pid end end spans.each do |span| @worker.enqueue(span) end end
shutdown!()
click to toggle source
# File lib/opencensus/trace/exporters/datadog.rb, line 48 def shutdown! return if @worker.nil? @worker.stop end
start()
click to toggle source
# File lib/opencensus/trace/exporters/datadog.rb, line 42 def start @pid = Process.pid @worker = Worker.new(@transport, @max_buffer_size, @flush_interval, @service_name) @worker.start() end