class OpenTracing::Instrumentation::Mongo::OperationNameBuilder

OperationNameBuilder for Mongo::TraceSubscriber

Constants

COLLECTION
DEFAULT_OPERATION_NAME_PATTERN

Attributes

operation_name_pattern[R]

Public Class Methods

new( operation_name_pattern: DEFAULT_OPERATION_NAME_PATTERN ) click to toggle source

@param operation_name_pattern [String]

# File lib/opentracing/instrumentation/mongo/operation_name_builder.rb, line 12
def initialize(
  operation_name_pattern: DEFAULT_OPERATION_NAME_PATTERN
)
  @operation_name_pattern = operation_name_pattern
end

Public Instance Methods

build_operation_name(event) click to toggle source

@param event [Mongo::Monitoring::Event::CommandStarted] @return [String] formated command name

# File lib/opentracing/instrumentation/mongo/operation_name_builder.rb, line 20
def build_operation_name(event)
  format_args = build_format_args(event)
  format(operation_name_pattern, **format_args)
end

Private Instance Methods

build_format_args(event) click to toggle source
# File lib/opentracing/instrumentation/mongo/operation_name_builder.rb, line 31
def build_format_args(event)
  {
    database: event.database_name,
    collection: fetch_collection_name(event),
    command: event.command_name,
  }
end
fetch_collection_name(event) click to toggle source
# File lib/opentracing/instrumentation/mongo/operation_name_builder.rb, line 39
def fetch_collection_name(event)
  # On some command collection name into 'collection' field,
  event.command[COLLECTION] || event.command[event.command_name]
end