Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / plugins / varnish / varnish2_ @ 17f78427

Historique | Voir | Annoter | Télécharger (2,04 ko)

1
#!/usr/bin/perl
2

    
3
# Original author: Bj?rn Ruberg
4
# Updated to Varnish 2.0/added instructions: Daniel Wirtz
5
#
6
# Installation (Debian):
7
# 1. Upload file to /usr/share/munin/plugins
8
# 2. Create symlinks:
9
#    ln -s /usr/share/munin/plugins/varnish2_ /etc/munin/plugins/varnish_cache
10
#    ln -s /usr/share/munin/plugins/varnish2_ /etc/munin/plugins/varnish_backend
11
#    ln -s /usr/share/munin/plugins/varnish2_ /etc/munin/plugins/varnish_shm
12
# 3. Restart Munin-Node:
13
#    /etc/init.d/munin-node restart
14

    
15
$arg = shift @ARGV;
16

    
17
%aspects = (
18
            'cache' => 'Cache',
19
            'backend' => 'Backend',
20
	    'shm' => 'SHM'
21
            );
22

    
23
(my $whut = $0) =~ s/^.*\_//;
24

    
25
# Hvis $whut IKKE fins, men $arg fins OG er noe annet enn blabla
26
# s? skal den trigge
27

    
28
if (!$whut && $arg && $arg !~ /^(suggest|autoconf)$/) {
29
    print "Only 'suggest' and 'autoconf' may be used w/o symlinked name\n";
30
    exit 2;
31
} elsif (!$whut && !$arg) {
32
    print "Uh. Bugger.\n";
33
    exit 2;
34
}
35

    
36
if ($arg eq 'autoconf') {
37
    print "Autoconf starting...\n";
38
    exit 0;
39
} elsif ($arg eq 'suggest') {
40
    print "Suggest starting...\n";
41
    exit 0;
42
} elsif ($arg eq 'config') {
43
    $config = 1;
44
}
45

    
46
$grepfor = $aspects{$whut};
47
# print "Looking for $grepfor\n";
48

    
49
if ($config) {
50
    print "graph_title Varnish $grepfor usage\n";
51
    print "graph_args --base 1000\n";
52
    print "graph_vlabel Activity / \${graph_period}\n";
53
    print "graph_category webserver\n";
54
}
55

    
56
$i = 0;
57
foreach $line (`varnishstat -1`) {
58
    chomp $line;
59
    if ($line =~ /\s+(\d+)\s+\d+\.\d+\s+($grepfor.*)$/) {
60
        $val = $1;
61
        $key = $2;
62
        ($printkey = lc ($key)) =~ s/\s/_/g;
63
        if ($config) {
64
            print "$printkey\.label $key\n";
65
            print "$printkey\.type DERIVE\n";
66
            print "$printkey\.min 0\n";
67
		print "$printkey\.draw ";
68
	    if ($i == 0) {
69
		print "AREA\n";
70
            } else {
71
		print "STACK\n";
72
     	    }
73
            $i++;
74
        } else {
75
            print "$printkey\.value $val\n";
76
        }
77
    }
78
}
79

    
80
exit;