From 5b82f1c40dae6947feeff05e68913a6a053384c3 Mon Sep 17 00:00:00 2001 From: Peter Palfrader Date: Fri, 21 Jul 2006 14:23:00 +0000 Subject: Rename it git-svn-id: svn+ssh://asteria.noreply.org/svn/weaselutils/trunk@154 bc3d92e2-beff-0310-a7cd-cc87d7ac0ede --- munin/cpufreq | 69 ----------------------------------------------------- munin/munin-cpufreq | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+), 69 deletions(-) delete mode 100755 munin/cpufreq create mode 100755 munin/munin-cpufreq diff --git a/munin/cpufreq b/munin/cpufreq deleted file mode 100755 index 316ceac..0000000 --- a/munin/cpufreq +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/ruby - -# Copyright (c) 2006 Peter Palfrader -# -#%# family=auto -#%# capabilities=autoconf - -def bail_out(m) - STDERR.puts "#{$0}: #{m}" - exit 1 -end - -def autoconf - if FileTest.directory? "/sys/devices/system/cpu/cpu0/cpufreq/" - puts "yes" - else - puts "no (no /sys/devices/system/cpu/cpu0/cpufreq/)" - end -end - -def findmasters - cpudirs = Dir.glob("/sys/devices/system/cpu/cpu*/").map{ |b| File.basename b } - cpus = cpudirs.map{ |d| /^cpu([0-9]+)$/.match(d)[1].to_i }.sort{|a,b| a<=>b } - masters = [] - cpus.each do |cpunum| - affected = IO.read("/sys/devices/system/cpu/cpu#{cpunum}/cpufreq/affected_cpus").split.map{|s| s.to_i}.sort{|a,b| a<=>b } - bail_out "huh? /sys/devices/system/cpu/cpu#{cpunum}/cpufreq/affected_cpus says it does not affect #{cpunum}!?" unless affected.include? cpunum - h = {} - h['cpunum'] = affected[0] - h['fieldname'] = "cpu#{affected[0]}" - h['label'] = affected.map{|c| "cpu#{c}"}.join(", ") - masters.push(h) - affected.each{ |a| cpus.delete(a) } - end - masters -end - -def config - puts 'graph_title CPU frequency' - puts 'graph_args --base 1000' - puts 'graph_vlabel Hz' - puts 'graph_category cpu' - puts 'graph_period second' - puts 'graph_info Shows the CPU frequency of all installed CPUs' - findmasters.each do |m| - puts "#{m['fieldname']}.label #{m['label']}" - puts "#{m['fieldname']}.info Hz" - puts "#{m['fieldname']}.type GAUGE" - end -end - -def report - m = findmasters - sleep(5) # we are interested how it does without us poking it, - # so maybe sleeping a bit will help - m.each do |m| - value = IO.read("/sys/devices/system/cpu/cpu#{m['cpunum']}/cpufreq/scaling_cur_freq").to_i - puts "#{m['fieldname']}.value #{value}" - end -end - -case ARGV[0] - when "autoconf" - autoconf - when "config" - config - else - report -end diff --git a/munin/munin-cpufreq b/munin/munin-cpufreq new file mode 100755 index 0000000..316ceac --- /dev/null +++ b/munin/munin-cpufreq @@ -0,0 +1,69 @@ +#!/usr/bin/ruby + +# Copyright (c) 2006 Peter Palfrader +# +#%# family=auto +#%# capabilities=autoconf + +def bail_out(m) + STDERR.puts "#{$0}: #{m}" + exit 1 +end + +def autoconf + if FileTest.directory? "/sys/devices/system/cpu/cpu0/cpufreq/" + puts "yes" + else + puts "no (no /sys/devices/system/cpu/cpu0/cpufreq/)" + end +end + +def findmasters + cpudirs = Dir.glob("/sys/devices/system/cpu/cpu*/").map{ |b| File.basename b } + cpus = cpudirs.map{ |d| /^cpu([0-9]+)$/.match(d)[1].to_i }.sort{|a,b| a<=>b } + masters = [] + cpus.each do |cpunum| + affected = IO.read("/sys/devices/system/cpu/cpu#{cpunum}/cpufreq/affected_cpus").split.map{|s| s.to_i}.sort{|a,b| a<=>b } + bail_out "huh? /sys/devices/system/cpu/cpu#{cpunum}/cpufreq/affected_cpus says it does not affect #{cpunum}!?" unless affected.include? cpunum + h = {} + h['cpunum'] = affected[0] + h['fieldname'] = "cpu#{affected[0]}" + h['label'] = affected.map{|c| "cpu#{c}"}.join(", ") + masters.push(h) + affected.each{ |a| cpus.delete(a) } + end + masters +end + +def config + puts 'graph_title CPU frequency' + puts 'graph_args --base 1000' + puts 'graph_vlabel Hz' + puts 'graph_category cpu' + puts 'graph_period second' + puts 'graph_info Shows the CPU frequency of all installed CPUs' + findmasters.each do |m| + puts "#{m['fieldname']}.label #{m['label']}" + puts "#{m['fieldname']}.info Hz" + puts "#{m['fieldname']}.type GAUGE" + end +end + +def report + m = findmasters + sleep(5) # we are interested how it does without us poking it, + # so maybe sleeping a bit will help + m.each do |m| + value = IO.read("/sys/devices/system/cpu/cpu#{m['cpunum']}/cpufreq/scaling_cur_freq").to_i + puts "#{m['fieldname']}.value #{value}" + end +end + +case ARGV[0] + when "autoconf" + autoconf + when "config" + config + else + report +end -- cgit v1.2.3