- Repository
- Munin (contrib)
- Last change
- 2018-08-02
- Graph Categories
- Family
- auto
- Capabilities
- Keywords
- Language
- Perl
- License
- GPL-2.0-only
dar_cpuusage
Name
dar_cpuusage - Munin plugin to monitor darwin cpu usage.
Applicable Systems
Should work on any darwin (Mac OS X) system with the ‘top’ command.
Configuration
None needed
Interpretation
The plugin runs the top command and shows the CPU usage for the machine.
Bugs
The stats are a snapshot at the time of the command - a 5 minute average would be better.
Magic Markers
#%# family=auto
#%# capabilities=autoconf
Version
v.0.0.1
Author
Copyright (C) 2010.
Original version by J.T.Sage (at) gmail (dot) com.
License
GPLv2
#!/usr/bin/perl -w
# -*- perl -*-
=head1 NAME
dar_cpuusage - Munin plugin to monitor darwin cpu usage.
=head1 APPLICABLE SYSTEMS
Should work on any darwin (Mac OS X) system with the 'top' command.
=head1 CONFIGURATION
None needed
=head1 INTERPRETATION
The plugin runs the top command and shows the CPU usage for the machine.
=head1 BUGS
The stats are a snapshot at the time of the command - a 5 minute average would
be better.
=head1 MAGIC MARKERS
#%# family=auto
#%# capabilities=autoconf
=head1 VERSION
v.0.0.1
=head1 AUTHOR
Copyright (C) 2010.
Original version by J.T.Sage (at) gmail (dot) com.
=head1 LICENSE
GPLv2
=cut
use Munin::Plugin;
if ( defined($ARGV[0])) {
if ($ARGV[0] eq 'autoconf') {
$uname = `uname`;
if ( not ( $uname =~ /Darwin/ ) ) { print "no (not a Darwin System)\n"; }
else {
if ( not -x "/usr/bin/top" ) { print "no (top not found)\n"; }
else {
print "yes\n";
}
}
exit 0;
}
if ( $ARGV[0] eq "config" ) {
print "graph_title CPU usage\n";
print "graph_args --base 1000 -r --lower-limit 0 --upper-limit 100\n";
print "graph_vlabel %\n";
print "graph_scale no\n";
print "graph_category system\n";
print "sys.label system\n";
print "sys.type GAUGE\n";
print "sys.min 0\nsys.draw AREA\n";
print "user.label user\n";
print "user.type GAUGE\n";
print "user.min 0\nuser.draw STACK\n";
print "idle.label idle\n";
print "idle.type GAUGE\n";
print "idle.min 0\nidle.draw STACK\n";
exit 0;
}
}
@top = `top -l1 -n0 -u`;
$quit = 0;
for ( $i = 1; ($i < $#top and $quit == 0); $i++ ) {
if ( $top[$i] =~ /^CPU/ ) {
$usr = $sys = $idl = $top[$i];
$usr =~ s/^.+?: (\d+\.\d+)\% user.+$/$1/;
chomp($usr);
$sys =~ s/^.+?, (\d+\.\d+)\% sys.+$/$1/;
chomp($sys);
$idl =~ s/^.+?, (\d+\.\d+)\% idle.+$/$1/;
chomp($idl);
print "sys.value " . $sys . "\n";
print "user.value " . $usr . "\n";
print "idle.value " . $idl . "\n";
$quit = 1;
}
}
# vim:syntax=perl