module BaselineRedRpm

Constants

TRACE_CONTEXT_KEY

Attributes

config[W]
logger[RW]

Public Class Methods

collector() click to toggle source
# File lib/baseline_red_rpm.rb, line 62
def collector
  @collector ||= BaselineRedRpm::Tracing::Collector.new(endpoint)
end
config() click to toggle source
# File lib/baseline_red_rpm.rb, line 38
def config
  @config ||= Configuration.new
end
configure() { |config| ... } click to toggle source
# File lib/baseline_red_rpm.rb, line 42
def configure
  yield(config)
end
disable_agent?() click to toggle source
# File lib/baseline_red_rpm.rb, line 147
def disable_agent?
  if config.agent_disabled
    true
  elsif Introspector.agentable?
    false
  else
    true
  end
end
endpoint() click to toggle source
# File lib/baseline_red_rpm.rb, line 58
def endpoint
  @endpoint ||= BaselineRedRpm::Tracing::Endpoint.local_endpoint(config.application_name)
end
floor_time(t, sec = 1) click to toggle source
# File lib/baseline_red_rpm.rb, line 143
def floor_time(t, sec = 1)
  Time.at((t.to_f / sec).floor * sec)
end
host() click to toggle source
# File lib/baseline_red_rpm.rb, line 123
def host
  @host ||= Socket.gethostname
end
load() click to toggle source
# File lib/baseline_red_rpm.rb, line 46
def load
  #Oj.mimic_JSON
  unless disable_agent?
    BaselineRedRpm::Instrumentation.load
    BaselineRedRpm.tracing_on
  end
end
mutex() click to toggle source
# File lib/baseline_red_rpm.rb, line 54
def mutex
  @mutex ||= Mutex.new
end
now() click to toggle source
# File lib/baseline_red_rpm.rb, line 157
def now
  if defined?(Process::CLOCK_REALTIME)
    Process.clock_gettime(Process::CLOCK_REALTIME)
  else
    Time.now
  end
end
round_time(t, sec = 1) click to toggle source
# File lib/baseline_red_rpm.rb, line 127
def round_time(t, sec = 1)
  t = Time.parse(t.to_s)

  down = t - (t.to_i % sec)
  up = down + sec

  difference_down = t - down
  difference_up = up - t

  if (difference_down < difference_up)
    return down
  else
    return up
  end
end
sender() click to toggle source
# File lib/baseline_red_rpm.rb, line 70
def sender
  @sender ||= BaselineRedRpm::Reporters::JsonClient.new(
    url: url,
    collector: collector,
    flush_interval: config.flush_interval
  )
  @sender.sample_memory = config.sample_memory
  @sender
end
tracer() click to toggle source
# File lib/baseline_red_rpm.rb, line 80
def tracer
  @tracer ||= BaselineRedRpm::Tracing::ManagedTracer.new(
    BaselineRedRpm::Tracing::Tracer.build(
      :service_name => config.application_name,
      :sender => sender,
      :collector => collector
    ),
    BaselineRedRpm::Tracing::ThreadSpanStack.new
  )
end
tracing?() click to toggle source
# File lib/baseline_red_rpm.rb, line 109
def tracing?
  !!@tracing
end
tracing_off() click to toggle source
# File lib/baseline_red_rpm.rb, line 102
def tracing_off
  mutex.synchronize do
    BaselineRedRpm.logger.debug "Disabling tracing."
    @tracing = false
  end
end
tracing_on() click to toggle source
# File lib/baseline_red_rpm.rb, line 91
def tracing_on
  if @without_tracing_enabled
    BaselineRedRpm.logger.debug "Not turning tracing on due to without tracing mode."
    return
  end
  mutex.synchronize do
    BaselineRedRpm.logger.debug "Enabling tracing."
    @tracing = true
  end
end
url() click to toggle source
# File lib/baseline_red_rpm.rb, line 66
def url
  @url ||= "#{config.host}/api/listener/3/#{config.license_key}"
end
without_tracing() { || ... } click to toggle source
# File lib/baseline_red_rpm.rb, line 113
def without_tracing
  @previously_tracing = BaselineRedRpm.tracing?
  @without_tracing_enabled = true
  BaselineRedRpm.tracing_off
  yield if block_given?
  @without_tracing_enabled = false
ensure
  BaselineRedRpm.tracing_on if @previously_tracing
end