Module: Puppet::Util::Profiler

Defined in:
lib/puppet/util/profiler.rb

Overview

A simple profiling callback system.

Defined Under Namespace

Classes: Aggregate, AroundProfiler, Logging, ObjectCounts, WallClock

Class Method Summary collapse

Class Method Details

.add_profiler(profiler) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • profiler (#profile)

    A profiler for the current thread



29
30
31
# File 'lib/puppet/util/profiler.rb', line 29

def self.add_profiler(profiler)
  @profiler.add_profiler(profiler)
end

.clearObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Reset the profiling system to the original state



16
17
18
# File 'lib/puppet/util/profiler.rb', line 16

def self.clear
  @profiler.clear
end

.currentObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Retrieve the current list of profilers



23
24
25
# File 'lib/puppet/util/profiler.rb', line 23

def self.current
  @profiler.current
end

.profile(message, metric_id, &block) ⇒ Object

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 hierarchy.

Parameters:

  • message (String)

    A description of the profiled event

  • metric_id (Array)

    A list of strings making up the ID of a metric to profile

  • block (Block)

    The segment of code to profile



50
51
52
# File 'lib/puppet/util/profiler.rb', line 50

def self.profile(message, metric_id, &block)
  @profiler.profile(message, metric_id, &block)
end

.remove_profiler(profiler) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • profiler (#profile)

    A profiler to remove from the current thread



35
36
37
# File 'lib/puppet/util/profiler.rb', line 35

def self.remove_profiler(profiler)
  @profiler.remove_profiler(profiler)
end