2015-07-13 00:38:54 +02:00
|
|
|
#!/usr/bin/env perl
|
|
|
|
# ex:ts=4
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings;
|
|
|
|
|
|
|
|
use Cache::Memcached;
|
|
|
|
|
|
|
|
# Based on original plugin, extended to unix socket use
|
|
|
|
# https://github.com/western, westroads@gmail.com
|
|
|
|
|
|
|
|
=head1 example config for /plugin-conf.d/munin-node
|
|
|
|
|
|
|
|
[memcached_hits_1]
|
|
|
|
env.server 127.0.0.1:11211
|
|
|
|
env.label "first local server"
|
|
|
|
|
|
|
|
[memcached_hits_2]
|
|
|
|
env.server /var/run/memcached/memcached.sock
|
|
|
|
env.label "second local server"
|
|
|
|
|
|
|
|
=cut
|
|
|
|
|
|
|
|
my $label = exists $ENV{'label'} ? $ENV{'label'} : '';
|
|
|
|
unless( $label ){
|
2018-08-02 02:03:42 +02:00
|
|
|
|
2015-07-13 00:38:54 +02:00
|
|
|
if( $0 =~ /memcached_ext_hits_([\w\d]+)$/ ){
|
|
|
|
$label = $1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
my $cmd = shift || '';
|
|
|
|
if ($cmd eq 'config') {
|
|
|
|
print "graph_title Memcached cache hits and misses on $label\n";
|
|
|
|
print "graph_args --base 1000 -l 0\n";
|
|
|
|
print "graph_vlabel requests\n";
|
2017-02-27 00:25:28 +01:00
|
|
|
print "graph_category memory\n";
|
2015-07-13 00:38:54 +02:00
|
|
|
print "graph_info This graph monitors the number of cache hits and misses.\n";
|
|
|
|
print "hits.label hits\n";
|
|
|
|
print "hits.info Number of cache hits\n";
|
|
|
|
print "hits.min 0\n";
|
|
|
|
print "hits.type DERIVE\n";
|
|
|
|
print "misses.label misses\n";
|
|
|
|
print "misses.info Number of cache misses\n";
|
|
|
|
print "misses.min 0\n";
|
|
|
|
print "misses.type DERIVE\n";
|
|
|
|
print "misses.draw AREA\n";
|
|
|
|
exit 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
my $server = exists $ENV{'server'} ? $ENV{'server'} : '127.0.0.1:11211';
|
|
|
|
|
|
|
|
my $memd = new Cache::Memcached { 'servers' => [$server] };
|
|
|
|
my $memstats = $memd->stats(['misc']);
|
|
|
|
|
|
|
|
print "hits.value " . $memstats->{hosts}->{$server}->{misc}->{get_hits} . "\n";
|
|
|
|
print "misses.value " .
|
|
|
|
$memstats->{hosts}->{$server}->{misc}->{get_misses} . "\n";
|