Repository
Munin (contrib)
Last change
2017-02-22
Graph Categories
Keywords
Language
Bash
License
PostgreSQL

postgresql_database_size

Sadly there is no documentation for this plugin.

#!/bin/bash
#
# Plugin to monitor PostgreSQL Database Sizes
#
# Author:
#    Guilherme Augusto da Rocha Silva <gars.dba@gmail.com>
#
# Created:
#    5th of november 2007
#
# Usage:
#    Place in /etc/munin/plugins/ (or link it there using ln -s)
#
# Parameters:
#    config   (required)
#
# General info:
#    Require permission for database access and read (no writes are processed).
#    Recommended user is PostgreSQL database owner (default: postgres).
#
# Log info:
# 2007/11/30 - Review on comments
#

dbserver='localhost'
dbuser='postgres'

if [ "$1" = "config" ]; then
   echo 'graph_args --base 1024 --lower-limit 0'
   echo 'graph_category db'
   echo 'graph_info Shows each database size on the PostgreSQL Server.'
   echo 'graph_title PostgreSQL Database Sizes'
   echo 'graph_vlabel Size (bytes)'

   psql -h ${dbserver} -U ${dbuser} -tc "SELECT datname FROM pg_database ORDER BY 1;" | while read name
   do
      test -z "${name}" && continue
      echo ${name}'.label '${name}
      echo ${name}'.type GAUGE'
      if [ "${name}" == "template0" ]; then
         echo ${name}'.info PostgreSQL template database.'
      elif [ "${name}" == "template1" ]; then
         echo ${name}'.info PostgreSQL and/or user template database.'
      elif [ "${name}" == "postgres" ]; then
         echo ${name}'.info User postgres database.'
      else
         echo ${name}'.info User defined database.'
      fi
   done
   exit 0
fi

psql -h ${dbserver} -U ${dbuser} -tc "SELECT datname, PG_DATABASE_SIZE(oid) FROM pg_database ORDER BY 1;" | while read name sep num
do
   test -z "${name}" && continue
   echo ${name}'.value '${num}
done