<?xml version="1.0" encoding="UTF-8"?>
<plugin-url>
  <approved type="boolean">false</approved>
  <author>Jesse Newland</author>
  <cached-tag-list>cpu, load, multiprocessor</cached-tag-list>
  <canonical-name nil="true"></canonical-name>
  <code>#
# Modified load_averages to show load/processor, as this is a more accurate
# measurement of CPU utilization.
#
# Requires /proc/cpuinfo
#
class LoadPerProcessor &lt; Scout::Plugin
  TEST_USAGE = &quot;#{File.basename($0)} max_load MAX_LOAD&quot;

   def build_report
     if `uptime` =~ /load average(s*): ([\d.]+)(,*) ([\d.]+)(,*) ([\d.]+)\Z/
       report :last_minute          =&gt; $2.to_f/processors,
              :last_five_minutes    =&gt; $4.to_f/processors,
              :last_fifteen_minutes =&gt; $6.to_f/processors
     else
       raise &quot;Couldn't use `uptime` as expected.&quot;
     end
  rescue Exception
    error &quot;Error determining load&quot;, $!.message
  end

  def processors
    processors = memory(:processors)
    unless processors &amp;&amp; processors &gt; 0
      if `cat /proc/cpuinfo | grep 'model name' | wc -l` =~ /(\d+)/
        processors = $1.to_i
      else
        raise &quot;Couldn't use /proc/cpuinfo as expected.&quot;
      end
      raise &quot;Couldn't use /proc/cpuinfo as expected.&quot; unless processors &gt; 0
    end
    remember(:processors, processors)
    return processors
  end

end
</code>
  <created-at type="datetime">2009-07-15T15:38:49-07:00</created-at>
  <default-triggers type="yaml" nil="true"></default-triggers>
  <description>A modified version of the load_averages which shows load/processor, as this is a more accurate measurement of CPU utilization on multi-core servers. Requires /proc/cpuinfo</description>
  <featured type="boolean">false</featured>
  <id type="integer">151</id>
  <metadata type="yaml">--- |-
metadata:
  last_minute:
    precision: 2
  last_five_minutes:
    precision: 2
  last_fifteen_minutes:
    precision: 2

triggers:
  - type: peak
    dname: last_minute
    max_value: 3
  - type: trend
    dname: last_minute
    direction: UP
    percentage_change: 60
    duration: 60
    window_reference: LAST_WEEK
    min_value: 0.2
</metadata>
  <name>Load Per Processor</name>
  <plugins-count type="integer">50</plugins-count>
  <rating-avg type="decimal">0.0</rating-avg>
  <rating-count type="integer">0</rating-count>
  <rating-total type="integer">0</rating-total>
  <readme nil="true"></readme>
  <schema type="yaml" nil="true"></schema>
  <scout-version type="integer">3</scout-version>
  <short-description>A modified version of the load_averages which shows load/processor, as this is a more accurate measurement of CPU utilization on multi-core servers. Requires /proc/cpuinfo</short-description>
  <tested-platforms>Linux</tested-platforms>
  <total-usage-count type="integer">0</total-usage-count>
  <updated-at type="datetime">2010-02-15T12:15:45-08:00</updated-at>
  <url>http://github.com/highgroove/scout-plugins/raw/master/load_per_processor/load_per_processor.rb</url>
</plugin-url>
