class AwesomeExplain::Insights::MongoidInsights
Attributes
command_subscriber[RW]
metrics[RW]
Public Class Methods
analyze(metrics = [], &block)
click to toggle source
# File lib/awesome_explain/insights/mongoid_insights.rb, line 5 def self.analyze(metrics = [], &block) instance = new instance.init instance.metrics = metrics block_result = instance.instance_eval(&block) instance.tear_down block_result unless metrics.size.positive? end
Public Instance Methods
init()
click to toggle source
# File lib/awesome_explain/insights/mongoid_insights.rb, line 14 def init command_subscribers = Mongoid.default_client.send(:monitoring).subscribers['Command'] || Mongo::Monitoring::Global.subscribers['Command'] @command_subscriber = command_subscribers.select do |s| s.class == AwesomeExplain::CommandSubscriber end.first @command_subscriber.clear Thread.current['ae_analyze'] = true Thread.current['ae_source'] = 'console' end
tear_down()
click to toggle source
# File lib/awesome_explain/insights/mongoid_insights.rb, line 24 def tear_down if @command_subscriber.nil? puts 'Configure the command subscriber then try again.' return end if @metrics.size.positive? result = {} @metrics.each do |m| result[m] = @command_subscriber.get(m) end @command_subscriber.clear return result else @command_subscriber.clear end Thread.current['ae_analyze'] = false end