Class: ZipkinTracer::RackHandler::ZipkinEnv

Inherits:
Object
  • Object
show all
Defined in:
lib/zipkin-tracer/rack/zipkin-tracer.rb

Overview

Environment with Zipkin information in it

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(env, config) ⇒ ZipkinEnv

Returns a new instance of ZipkinEnv.



72
73
74
75
# File 'lib/zipkin-tracer/rack/zipkin-tracer.rb', line 72

def initialize(env, config)
  @env    = env
  @config = config
end

Instance Attribute Details

#envObject (readonly)

Returns the value of attribute env.



70
71
72
# File 'lib/zipkin-tracer/rack/zipkin-tracer.rb', line 70

def env
  @env
end

Instance Method Details

#called_with_zipkin_headers?Boolean

Returns:

  • (Boolean)


91
92
93
# File 'lib/zipkin-tracer/rack/zipkin-tracer.rb', line 91

def called_with_zipkin_headers?
  @called_with_zipkin_headers ||= B3_REQUIRED_HEADERS.all? { |key| @env.has_key?(key) }
end

#force_sample?Boolean

Returns:

  • (Boolean)


95
96
97
# File 'lib/zipkin-tracer/rack/zipkin-tracer.rb', line 95

def force_sample?
  @force_sample ||= @config.whitelist_plugin && @config.whitelist_plugin.call(@env)
end

#trace_id(default_flags = Trace::Flags::EMPTY) ⇒ Object



77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/zipkin-tracer/rack/zipkin-tracer.rb', line 77

def trace_id(default_flags = Trace::Flags::EMPTY)
  trace_parameters = if called_with_zipkin_headers?
                       @env.values_at(*B3_REQUIRED_HEADERS)
                     else
                       new_id = Trace.generate_id
                       [new_id, nil, new_id]
                     end
  trace_parameters[3] = should_trace?(trace_parameters[3])
  trace_parameters += @env.values_at(*B3_OPT_HEADERS) # always check flags
  trace_parameters[4] = (trace_parameters[4] || default_flags).to_i

  Trace::TraceId.new(*trace_parameters)
end