class InfluxReporter::Trace

Constants

DEFAULT_KIND

Attributes

duration[R]
extra[RW]
kind[RW]
parents[RW]
relative_start[R]
signature[RW]
start_time[R]
timestamp[R]
transaction[R]

Public Class Methods

new(transaction, signature, kind = nil, parents = [], extra = nil) click to toggle source
# File lib/influx_reporter/trace.rb, line 9
def initialize(transaction, signature, kind = nil, parents = [], extra = nil)
  @transaction = transaction
  @signature = signature
  @kind = kind || DEFAULT_KIND
  @parents = parents || []
  @extra = extra || {}

  @timestamp = Util.nanos
end

Public Instance Methods

done(ms = Util.nanos) click to toggle source
# File lib/influx_reporter/trace.rb, line 30
def done(ms = Util.nanos)
  @duration = ms - start_time

  @transaction._trace_stopped self
  self
end
done?() click to toggle source
# File lib/influx_reporter/trace.rb, line 37
def done?
  !!duration
end
inspect() click to toggle source
# File lib/influx_reporter/trace.rb, line 45
def inspect
  info = %w[signature kind parents extra timestamp duration relative_start]
  "<Trace #{info.map { |m| "#{m}:#{send(m).inspect}" }.join(' ')}>"
end
running?() click to toggle source
# File lib/influx_reporter/trace.rb, line 41
def running?
  !done?
end
start(relative_to) click to toggle source
# File lib/influx_reporter/trace.rb, line 22
def start(relative_to)
  @start_time = Util.nanos
  @relative_start = start_time - relative_to

  @transaction._trace_started self
  self
end