module Skylight::Core::Fanout

Public Class Methods

broken!() click to toggle source
# File lib/skylight/core/fanout.rb, line 42
def self.broken!
  registered.each(&:broken!)
end
done(spans, meta = nil) click to toggle source
# File lib/skylight/core/fanout.rb, line 36
def self.done(spans, meta = nil)
  spans.reverse_each do |(target, span)|
    target.done(span, meta)
  end
end
each_trace() { |trace| ... } click to toggle source
# File lib/skylight/core/fanout.rb, line 50
def self.each_trace
  return to_enum(__method__) unless block_given?
  registered.each do |r|
    next unless r.instrumenter && (trace = r.instrumenter.current_trace)
    yield trace
  end
end
endpoint=(endpoint) click to toggle source
# File lib/skylight/core/fanout.rb, line 46
def self.endpoint=(endpoint)
  each_trace { |t| t.endpoint = endpoint }
end
instrument(*args) { |spans| ... } click to toggle source
# File lib/skylight/core/fanout.rb, line 20
def self.instrument(*args)
  if block_given?
    spans = instrument(*args)
    meta = {}
    begin
      yield spans
    ensure
      done(spans, meta)
    end
  else
    registered.map do |r|
      [r, r.instrument(*args)]
    end
  end
end
register(obj) click to toggle source
# File lib/skylight/core/fanout.rb, line 8
def self.register(obj)
  registered.push(obj)
end
registered() click to toggle source
# File lib/skylight/core/fanout.rb, line 4
def self.registered
  @registered ||= []
end
trace(*args) click to toggle source
# File lib/skylight/core/fanout.rb, line 16
def self.trace(*args)
  registered.map { |r| r.trace(*args) }
end
unregister(obj) click to toggle source
# File lib/skylight/core/fanout.rb, line 12
def self.unregister(obj)
  registered.delete(obj)
end