Projet

Général

Profil

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

root / plugins / postgresql / postgresql_database_size @ 6c3ce4e1

Historique | Voir | Annoter | Télécharger (1,6 ko)

1 24b4b3f5 Guilherme Augusto da Rocha Silva
#!/bin/bash
2
#
3
# Plugin to monitor PostgreSQL Database Sizes
4
#
5
# Author:
6
#    Guilherme Augusto da Rocha Silva <gars.dba@gmail.com>
7
#
8
# Created:
9
#    5th of november 2007
10
#
11
# Usage:
12
#    Place in /etc/munin/plugins/ (or link it there using ln -s)
13
#
14
# Parameters:
15
#    config   (required)
16
#
17
# General info:
18
#    Require permission for database access and read (no writes are processed).
19 fba800ae Veres Lajos
#    Recommended user is PostgreSQL database owner (default: postgres).
20 24b4b3f5 Guilherme Augusto da Rocha Silva
#
21
# Log info:
22
# 2007/11/30 - Review on comments
23
#
24
25
dbserver='localhost'
26
dbuser='postgres'
27
28
if [ "$1" = "config" ]; then
29
   echo 'graph_args --base 1024 --lower-limit 0'
30 29bdf34e dipohl
   echo 'graph_category db'
31 24b4b3f5 Guilherme Augusto da Rocha Silva
   echo 'graph_info Shows each database size on the PostgreSQL Server.'
32
   echo 'graph_title PostgreSQL Database Sizes'
33
   echo 'graph_vlabel Size (bytes)'
34
35
   psql -h ${dbserver} -U ${dbuser} -tc "SELECT datname FROM pg_database ORDER BY 1;" | while read name
36
   do
37
      test -z "${name}" && continue
38
      echo ${name}'.label '${name}
39
      echo ${name}'.type GAUGE'
40
      if [ "${name}" == "template0" ]; then
41
         echo ${name}'.info PostgreSQL template database.'
42
      elif [ "${name}" == "template1" ]; then
43
         echo ${name}'.info PostgreSQL and/or user template database.'
44
      elif [ "${name}" == "postgres" ]; then
45
         echo ${name}'.info User postgres database.'
46
      else
47
         echo ${name}'.info User defined database.'
48
      fi
49
   done
50
   exit 0
51
fi
52
53
psql -h ${dbserver} -U ${dbuser} -tc "SELECT datname, PG_DATABASE_SIZE(oid) FROM pg_database ORDER BY 1;" | while read name sep num
54
do
55
   test -z "${name}" && continue
56
   echo ${name}'.value '${num}
57
done