Class: Mongo::Monitoring::Event::CommandFailed

Inherits:
Event::Base
  • Object
show all
Includes:
Secure
Defined in:
lib/mongo/monitoring/event/command_failed.rb

Overview

Event that is fired when a command operation fails.

Since:

  • 2.1.0

Constant Summary

Constants included from Secure

Secure::REDACTED_COMMANDS

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Secure

#compression_allowed?, #redacted, #sensitive?

Constructor Details

#initialize(command_name, database_name, address, request_id, operation_id, message, failure, duration, started_event:, server_connection_id: nil, service_id: nil) ⇒ CommandFailed

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Create the new event.

Examples:

Create the event.

Parameters:

  • command_name (String)

    The name of the command.

  • database_name (String)

    The database_name name.

  • address (Server::Address)

    The server address.

  • request_id (Integer)

    The request id.

  • operation_id (Integer)

    The operation id.

  • message (String)

    The error message.

  • failure (BSON::Document)

    The error document, if any.

  • duration (Float)

    The duration the command took in seconds.

  • started_event (Monitoring::Event::CommandStarted)

    The corresponding started event.

  • service_id (Object) (defaults to: nil)

    The service id, if any.

Since:

  • 2.1.0



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/mongo/monitoring/event/command_failed.rb', line 85

def initialize(command_name, database_name, address,
  request_id, operation_id, message, failure, duration,
  started_event:, server_connection_id: nil, 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
  @server_connection_id = server_connection_id
end

Instance Attribute Details

#addressServer::Address (readonly)

Returns address The server address.

Returns:

  • (Server::Address)

    address The server address.

Since:

  • 2.1.0



29
30
31
# File 'lib/mongo/monitoring/event/command_failed.rb', line 29

def address
  @address
end

#command_nameString (readonly)

Returns command_name The name of the command.

Returns:

  • (String)

    command_name The name of the command.

Since:

  • 2.1.0



32
33
34
# File 'lib/mongo/monitoring/event/command_failed.rb', line 32

def command_name
  @command_name
end

#database_nameString (readonly)

Returns database_name The name of the database_name.

Returns:

  • (String)

    database_name The name of the database_name.

Since:

  • 2.1.0



35
36
37
# File 'lib/mongo/monitoring/event/command_failed.rb', line 35

def database_name
  @database_name
end

#durationFloat (readonly)

Returns duration The duration of the command in seconds.

Returns:

  • (Float)

    duration The duration of the command in seconds.

Since:

  • 2.1.0



38
39
40
# File 'lib/mongo/monitoring/event/command_failed.rb', line 38

def duration
  @duration
end

#failureBSON::Document (readonly)

Returns 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.

Returns:

  • (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.

Since:

  • 2.1.0



44
45
46
# File 'lib/mongo/monitoring/event/command_failed.rb', line 44

def failure
  @failure
end

#messageString (readonly)

Returns message The error message. Unlike the error document, the error message should always be present.

Returns:

  • (String)

    message The error message. Unlike the error document, the error message should always be present.

Since:

  • 2.1.0



48
49
50
# File 'lib/mongo/monitoring/event/command_failed.rb', line 48

def message
  @message
end

#operation_idInteger (readonly)

Returns operation_id The operation id.

Returns:

  • (Integer)

    operation_id The operation id.

Since:

  • 2.1.0



51
52
53
# File 'lib/mongo/monitoring/event/command_failed.rb', line 51

def operation_id
  @operation_id
end

#request_idInteger (readonly)

Returns request_id The request id.

Returns:

  • (Integer)

    request_id The request id.

Since:

  • 2.1.0



54
55
56
# File 'lib/mongo/monitoring/event/command_failed.rb', line 54

def request_id
  @request_id
end

#server_connection_idInteger (readonly)

Returns server_connection_id The server connection id.

Returns:

  • (Integer)

    server_connection_id The server connection id.

Since:

  • 2.1.0



57
58
59
# File 'lib/mongo/monitoring/event/command_failed.rb', line 57

def server_connection_id
  @server_connection_id
end

#service_idnil | Object (readonly)

Returns The service id, if any.

Returns:

  • (nil | Object)

    The service id, if any.

Since:

  • 2.1.0



60
61
62
# File 'lib/mongo/monitoring/event/command_failed.rb', line 60

def service_id
  @service_id
end

#started_eventMonitoring::Event::CommandStarted (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Returns started_event The corresponding started event.

Returns:

Since:

  • 2.1.0



66
67
68
# File 'lib/mongo/monitoring/event/command_failed.rb', line 66

def started_event
  @started_event
end

Class Method Details

.generate(address, operation_id, payload, message, failure, duration, started_event:, server_connection_id: nil, service_id: nil) ⇒ CommandFailed

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Create the event from a wire protocol message payload.

Examples:

Create the event.

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

Parameters:

  • address (Server::Address)

    The server address.

  • operation_id (Integer)

    The operation id.

  • payload (Hash)

    The message payload.

  • message (String)

    The error message.

  • failure (BSON::Document)

    The error document, if any.

  • duration (Float)

    The duration of the command in seconds.

  • started_event (Monitoring::Event::CommandStarted)

    The corresponding started event.

  • service_id (Object) (defaults to: nil)

    The service id, if any.

Returns:

Since:

  • 2.1.0



132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# File 'lib/mongo/monitoring/event/command_failed.rb', line 132

def self.generate(address, operation_id, payload, message,
  failure, duration, started_event:, server_connection_id: nil,
  service_id: nil
)
  new(
    payload[:command_name],
    payload[:database_name],
    address,
    payload[:request_id],
    operation_id,
    message,
    failure,
    duration,
    started_event: started_event,
    server_connection_id: server_connection_id,
    service_id: service_id,
  )
end

Instance Method Details

#summaryString

Note:

This method is experimental and subject to change.

Returns a concise yet useful summary of the event.

Returns:

  • (String)

    String summary of the event.

Since:

  • 2.1.0



109
110
111
# File 'lib/mongo/monitoring/event/command_failed.rb', line 109

def summary
  "#<#{short_class_name} address=#{address} #{database_name}.#{command_name}>"
end