Sha256: 4b2e636802c56226a94cd5df3fbc69d4635abb2c4054e98d81c4dcb3458e5bfc

Contents?: true

Size: 836 Bytes

Versions: 11

Compression:

Stored size: 836 Bytes

Contents

module Startback
  class Context
    attr_accessor :tracer

    def tracer
      @tracer ||= Audit::Tracer.empty.on_span(
        Audit::TraceLogger.new(logger)
      )
    end

    def trace_span(attributes = {}, &block)
      @tracer = tracer.new_trace unless tracer.attached?
      tracer.fork(attributes, &block)
    end

    h_dump do |h|
      next unless tracer.attached?

      last_span = tracer.last_span!
      h.merge!("tracing" => {
        "trace_id" => last_span.trace_id,
        "span_id" => last_span.span_id,
        "parent_id" => last_span.parent_id,
      })
    end

    h_factory do |c, h|
      next unless h['tracing']

      trace_id = h['tracing']['trace_id']
      span_id = h['tracing']['span_id']
      c.tracer = c.tracer.attach_to(trace_id, span_id)
    end
  end # class Context
end # module Startback

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
startback-1.0.3 lib/startback/audit/ext/context.rb
startback-1.0.2 lib/startback/audit/ext/context.rb
startback-1.0.1 lib/startback/audit/ext/context.rb
startback-1.0.0 lib/startback/audit/ext/context.rb
startback-0.19.4 lib/startback/audit/ext/context.rb
startback-0.19.3 lib/startback/audit/ext/context.rb
startback-0.19.1 lib/startback/audit/ext/context.rb
startback-0.19.0 lib/startback/audit/ext/context.rb
startback-0.18.2 lib/startback/audit/ext/context.rb
startback-0.18.1 lib/startback/audit/ext/context.rb
startback-0.18.0 lib/startback/audit/ext/context.rb