Class: Mongoid::Railties::ControllerRuntime::Collector

Inherits:
Object
  • Object
show all
Defined in:
lib/mongoid/railties/controller_runtime.rb

Overview

The Collector of MongoDB runtime metric, that subscribes to Mongo driver command monitoring. Stores the value within a thread-local variable to provide correct accounting when an application issues MongoDB operations from background threads.

Constant Summary collapse

VARIABLE_NAME =
'Mongoid.controller_runtime'

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.reset_runtimeInteger

Reset the runtime value to zero the current thread.

Returns:

  • (Integer)

    The previous runtime value.



92
93
94
95
96
# File 'lib/mongoid/railties/controller_runtime.rb', line 92

def self.reset_runtime
  to_now = runtime
  self.runtime = 0
  to_now
end

.runtimeInteger

Get the runtime value on the current thread.

Returns:

  • (Integer)

    The runtime value.



76
77
78
# File 'lib/mongoid/railties/controller_runtime.rb', line 76

def self.runtime
  Threaded.get(VARIABLE_NAME) { 0 }
end

.runtime=(value) ⇒ Integer

Set the runtime value on the current thread.

Parameters:

  • value (Integer)

    The runtime value.

Returns:

  • (Integer)

    The runtime value.



85
86
87
# File 'lib/mongoid/railties/controller_runtime.rb', line 85

def self.runtime=(value)
  Threaded.set(VARIABLE_NAME, value)
end

Instance Method Details

#_completed(e) ⇒ Integer Also known as: succeeded, failed

Call when event completed. Updates the runtime value.

Parameters:

  • e (Mongo::Event::Base)

    The monitoring event.

Returns:

  • (Integer)

    The current runtime value.



67
68
69
# File 'lib/mongoid/railties/controller_runtime.rb', line 67

def _completed(e)
  Collector.runtime += e.duration * 1000
end

#started(_) ⇒ nil

Call when event started. Does nothing.

Returns:

  • (nil)

    Nil.



60
# File 'lib/mongoid/railties/controller_runtime.rb', line 60

def started(_); end