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".freeze

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.



96
97
98
99
100
# File 'lib/mongoid/railties/controller_runtime.rb', line 96

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.



80
81
82
# File 'lib/mongoid/railties/controller_runtime.rb', line 80

def self.runtime
  Thread.current[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.



89
90
91
# File 'lib/mongoid/railties/controller_runtime.rb', line 89

def self.runtime= value
  Thread.current[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.



71
72
73
# File 'lib/mongoid/railties/controller_runtime.rb', line 71

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

#started(_) ⇒ nil

Call when event started. Does nothing.

Returns:

  • (nil)

    Nil.



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

def started _; end