Class: Mongo::Monitoring::CommandLogSubscriber

Inherits:
Object
  • Object
show all
Includes:
Loggable
Defined in:
lib/mongo/monitoring/command_log_subscriber.rb

Overview

Subscribes to command events and logs them.

Since:

  • 2.1.0

Constant Summary collapse

LOG_STRING_LIMIT =

Constant for the max number of characters to print when inspecting a query field.

Since:

  • 2.1.0

250

Constants included from Loggable

Loggable::PREFIX

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Loggable

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

Constructor Details

#initialize(options = {}) ⇒ CommandLogSubscriber

Create the new log subscriber.

Examples:

Create the log subscriber.

CommandLogSubscriber.new

Parameters:

  • options (Hash) (defaults to: {})

    The options.

Options Hash (options):

  • :logger (Logger)

    An optional custom logger.

Since:

  • 2.1.0



46
47
48
# File 'lib/mongo/monitoring/command_log_subscriber.rb', line 46

def initialize(options = {})
  @options = options
end

Instance Attribute Details

#optionsHash (readonly)

Returns options The options.

Returns:

  • (Hash)

    options The options.

Since:

  • 2.1.0



28
29
30
# File 'lib/mongo/monitoring/command_log_subscriber.rb', line 28

def options
  @options
end

Instance Method Details

#failed(event) ⇒ Object

Handle the command failed event.

Examples:

Handle the event.

subscriber.failed(event)

Parameters:

  • event (CommandFailedEvent)

    The event.

Since:

  • 2.1.0



91
92
93
94
95
# File 'lib/mongo/monitoring/command_log_subscriber.rb', line 91

def failed(event)
  if logger.debug?
    log_debug("#{prefix(event)} | FAILED | #{event.message} | #{event.duration}s")
  end
end

#started(event) ⇒ Object

Handle the command started event.

Examples:

Handle the event.

subscriber.started(event)

Parameters:

  • event (CommandStartedEvent)

    The event.

Since:

  • 2.1.0



58
59
60
61
62
63
64
65
66
67
# File 'lib/mongo/monitoring/command_log_subscriber.rb', line 58

def started(event)
  if logger.debug?
    _prefix = prefix(event,
      connection_generation: event.connection_generation,
      connection_id: event.connection_id,
      server_connection_id: event.server_connection_id,
    )
    log_debug("#{_prefix} | STARTED | #{format_command(event.command)}")
  end
end

#succeeded(event) ⇒ Object

Handle the command succeeded event.

Examples:

Handle the event.

subscriber.succeeded(event)

Parameters:

  • event (CommandSucceededEvent)

    The event.

Since:

  • 2.1.0



77
78
79
80
81
# File 'lib/mongo/monitoring/command_log_subscriber.rb', line 77

def succeeded(event)
  if logger.debug?
    log_debug("#{prefix(event)} | SUCCEEDED | #{'%.3f' % event.duration}s")
  end
end