class Mongo::Monitoring::Event::CommandFailed

Event that is fired when a command operation fails.

@since 2.1.0

Attributes

address[R]

@return [ Server::Address ] address The server address.

command_name[R]

@return [ String ] command_name The name of the command.

database_name[R]

@return [ String ] database_name The name of the database_name.

duration[R]

@return [ Float ] duration The duration of the command in seconds.

failure[R]

@return [ BSON::Document ] failure The error document, if present.

This will only be filled out for errors communicated by a
MongoDB server. In other situations, for example in case of
a network error, this attribute may be nil.
message[R]

@return [ String ] message The error message. Unlike the error

document, the error message should always be present.
operation_id[R]

@return [ Integer ] operation_id The operation id.

request_id[R]

@return [ Integer ] request_id The request id.

service_id[R]

@return [ nil | Object ] The service id, if any.

started_event[R]

@return [ Monitoring::Event::CommandStarted ] started_event The corresponding

started event.

@api private

Public Class Methods

generate(address, operation_id, payload, message, failure, duration, started_event:, service_id: nil ) click to toggle source

Create the event from a wire protocol message payload.

@example Create the event.

CommandFailed.generate(address, 1, payload, duration)

@param [ Server::Address ] address The server address. @param [ Integer ] operation_id The operation id. @param [ Hash ] payload The message payload. @param [ String ] message The error message. @param [ BSON::Document ] failure The error document, if any. @param [ Float ] duration The duration of the command in seconds. @param [ Monitoring::Event::CommandStarted ] started_event The corresponding

started event.

@param [ Object ] service_id The service id, if any.

@return [ CommandFailed ] The event.

@since 2.1.0 @api private

# File lib/mongo/monitoring/event/command_failed.rb, line 128
def self.generate(address, operation_id, payload, message,
  failure, duration, started_event:, service_id: nil
)
  new(
    payload[:command_name],
    payload[:database_name],
    address,
    payload[:request_id],
    operation_id,
    message,
    failure,
    duration,
    started_event: started_event,
    service_id: service_id,
  )
end
new(command_name, database_name, address, request_id, operation_id, message, failure, duration, started_event:, service_id: nil ) click to toggle source

Create the new event.

@example Create the event.

@param [ String ] command_name The name of the command. @param [ String ] database_name The database_name name. @param [ Server::Address ] address The server address. @param [ Integer ] request_id The request id. @param [ Integer ] operation_id The operation id. @param [ String ] message The error message. @param [ BSON::Document ] failure The error document, if any. @param [ Float ] duration The duration the command took in seconds. @param [ Monitoring::Event::CommandStarted ] started_event The corresponding

started event.

@param [ Object ] service_id The service id, if any.

@api private

# File lib/mongo/monitoring/event/command_failed.rb, line 82
def initialize(command_name, database_name, address,
  request_id, operation_id, message, failure, duration,
  started_event:, service_id: nil
)
  @command_name = command_name.to_s
  @database_name = database_name
  @address = address
  @request_id = request_id
  @operation_id = operation_id
  @service_id = service_id
  @message = message
  @started_event = started_event
  @failure = redacted(command_name, failure)
  @duration = duration
end

Public Instance Methods

summary() click to toggle source

Returns a concise yet useful summary of the event.

@return [ String ] String summary of the event.

@note This method is experimental and subject to change.

@api experimental

# File lib/mongo/monitoring/event/command_failed.rb, line 105
def summary
  "#<#{short_class_name} address=#{address} #{database_name}.#{command_name}>"
end