Module: Mongo::Monitoring::Publishable
- Included in:
- Server::Connection
- Defined in:
- lib/mongo/monitoring/publishable.rb
Overview
Defines behaviour for an object that can publish monitoring events.
Instance Attribute Summary collapse
-
#monitoring ⇒ Monitoring
readonly
Monitoring The monitoring.
Instance Method Summary collapse
-
#publish_command(messages, operation_id = Monitoring.next_operation_id) ⇒ Object
Publish a command event to the global monitoring.
Instance Attribute Details
#monitoring ⇒ Monitoring (readonly)
Returns monitoring The monitoring.
24 25 26 |
# File 'lib/mongo/monitoring/publishable.rb', line 24 def monitoring @monitoring end |
Instance Method Details
#publish_command(messages, operation_id = Monitoring.next_operation_id) ⇒ Object
Publish a command event to the global monitoring.
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/mongo/monitoring/publishable.rb', line 38 def publish_command(, operation_id = Monitoring.next_operation_id) start = Time.now = .first .set_request_id payload = .payload send_duration = duration(start) command_started(address, operation_id, payload) receive_start = Time.now begin result = yield() total_duration = duration(receive_start) + send_duration command_completed(result, address, operation_id, payload, total_duration) result rescue Exception => e total_duration = duration(receive_start) + send_duration command_failed(address, operation_id, payload, e., total_duration) raise e end end |