plugin-mysql_size: mysql_size

File mysql_size, 1.4 kB (added by rune.skillingstad@ntnu.no, 6 years ago)
Line 
1 #!/bin/sh
2 #
3 # Plugin to monitor the size of databases in a mysql-server.
4 #
5 # Copyright: Rune Nordbøe Skillingstad <rune.skillingstad@ntnu.no>
6 #
7 # Parameters supported:
8 #
9 #       config
10 #       autoconf
11 #
12 # Configuration variables
13 #
14 #       mysqlopts    - Options to pass to mysql
15 #
16 #%# family=auto
17 #%# capabilities=autoconf
18
19 MYSQLOPTS="$mysqlopts"
20 MYSQL=${mysql:-mysql}
21
22 if [ "$1" = "autoconf" ]; then
23         $MYSQL --version 2>/dev/null >/dev/null
24         if [ $? -eq 0 ]
25         then
26                 $MYSQL $MYSQLOPTS -s -e "SHOW TABLE STATUS" 2>/dev/null >/dev/null
27                 if [ $? -eq 0 ]
28                 then
29                         echo yes
30                         exit 0
31                 else
32                         echo "no (could not connect to mysql)"
33                 fi
34         else
35                 echo "no (mysql not found)"
36         fi
37         exit 1
38 fi
39
40 if [ "$1" = "config" ]; then
41         echo 'graph_title MySQL database sizes'
42         echo 'graph_vlabel bytes'
43         echo 'graph_category mysql'
44         echo 'threads.label mysql size'
45         echo 'graph_args --base 1000'
46         for DB in $($MYSQL $MYSQLOPTS -s -e 'show databases');
47         do
48            echo "$DB.label $DB size (bytes)"
49            echo "$DB.info $DB size"
50            echo "$DB.type GAUGE"
51            echo "$DB.draw LINE2"
52         done
53         exit 0
54 fi
55
56 for DB in $($MYSQL $MYSQLOPTS -s -e 'show databases');
57 do 
58         echo -n "$DB.value "
59         $MYSQL $MYSQLOPTS -s -e "SHOW TABLE STATUS FROM $DB" \
60           | awk 'BEGIN{s=0}{s+=$6;s+=$8}END{printf "%d\n", s}';
61 done