class Rabbitek::Utils::OpenTracing
OpenTracing
helpers
Constants
- OPENTRACING_COMPONENT
- OPENTRACING_KIND_CLIENT
- OPENTRACING_KIND_SERVER
Public Class Methods
client_options(params)
click to toggle source
# File lib/rabbitek/utils/open_tracing.rb, line 17 def client_options(params) { tags: { 'component' => OPENTRACING_COMPONENT, 'span.kind' => OPENTRACING_KIND_CLIENT, 'rabbitmq.routing_key' => params[:routing_key] } } end
inject!(span, carrier)
click to toggle source
# File lib/rabbitek/utils/open_tracing.rb, line 13 def inject!(span, carrier) ::OpenTracing.inject(span.context, ::OpenTracing::FORMAT_TEXT_MAP, carrier) end
log_error(span, err)
click to toggle source
# File lib/rabbitek/utils/open_tracing.rb, line 45 def log_error(span, err) span.set_tag('error', true) span.log_kv( event: 'error', 'error.kind': err.class.to_s, 'error.object': err, message: err.message ) end
server_options(delivery_info, properties)
click to toggle source
# File lib/rabbitek/utils/open_tracing.rb, line 27 def server_options(delivery_info, properties) references = server_references(properties) options = { tags: { 'component' => OPENTRACING_COMPONENT, 'span.kind' => OPENTRACING_KIND_SERVER, 'rabbitmq.routing_key' => delivery_info.routing_key, 'rabbitmq.jid' => Thread.current[:rabbit_context][:jid], 'rabbitmq.queue' => Thread.current[:rabbit_context][:queue], 'rabbitmq.worker' => Thread.current[:rabbit_context][:consumer] } } options[:references] = [references] if references options end
Private Class Methods
extract(message_properties)
click to toggle source
# File lib/rabbitek/utils/open_tracing.rb, line 64 def extract(message_properties) ::OpenTracing.extract(::OpenTracing::FORMAT_TEXT_MAP, message_properties.headers) end
server_references(message_properties)
click to toggle source
# File lib/rabbitek/utils/open_tracing.rb, line 57 def server_references(message_properties) ctx = extract(message_properties) return unless ctx ::OpenTracing::Reference.follows_from(ctx) end