lightstep-tracer-ruby/lib/lightstep.rb

52 строки
1.2 KiB
Ruby

require 'forwardable'
require 'logger'
# LightStep Tracer
module LightStep
extend SingleForwardable
# Base class for all LightStep errors
class Error < StandardError; end
# Returns the singleton instance of the Tracer.
def self.instance
LightStep::GlobalTracer.instance
end
def_delegator :instance, :configure
def_delegator :instance, :start_span
def_delegator :instance, :start_active_span
def_delegator :instance, :active_span
def_delegator :instance, :disable
def_delegator :instance, :enable
def_delegator :instance, :flush
# Convert a time to microseconds
def self.micros(time)
(time.to_f * 1E6).floor
end
# Returns a random guid. Note: this intentionally does not use SecureRandom,
# which is slower and cryptographically secure randomness is not required here.
def self.guid
unless @_lastpid == Process.pid
@_lastpid = Process.pid
@_rng = Random.new
end
@_rng.bytes(8).unpack('H*')[0]
end
def self.logger
@logger ||= defined?(::Rails) ? Rails.logger : Logger.new(STDOUT)
end
def self.logger=(logger)
@logger = logger
end
end
require 'lightstep/tracer'
require 'lightstep/global_tracer'
require 'lightstep/scope'
require 'lightstep/scope_manager'