A simple profiling callback system.
@api public
@param profiler [profile] A profiler for the current thread @api private
# File lib/puppet/util/profiler.rb, line 29 def self.add_profiler(profiler) @profiler.add_profiler(profiler) end
Reset the profiling system to the original state
@api private
# File lib/puppet/util/profiler.rb, line 16 def self.clear @profiler.clear end
Retrieve the current list of profilers
@api private
# File lib/puppet/util/profiler.rb, line 23 def self.current @profiler.current end
Profile a block of code and log the time it took to execute.
This outputs logs entries to the Puppet masters logging destination providing the time it took, a message describing the profiled code and a leaf location marking where the profile method was called in the profiled hierachy.
@param message [String] A description of the profiled event @param metric_id [Array] A list of strings making up the ID of a metric to profile @param block [Block] The segment of code to profile @api public
# File lib/puppet/util/profiler.rb, line 50 def self.profile(message, metric_id = nil, &block) @profiler.profile(message, metric_id, &block) end
@param profiler [profile] A profiler to remove from the current thread @api private
# File lib/puppet/util/profiler.rb, line 35 def self.remove_profiler(profiler) @profiler.remove_profiler(profiler) end