Projet

Général

Profil

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

root / plugins / postgresql / postgresql_active_locks @ 154cef14

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

1 090a4405 Guilherme Augusto da Rocha Silva
#!/bin/bash
2
#
3
# Plugin to monitor PostgreSQL Locks
4
#
5
# Author:
6
#    Guilherme Augusto da Rocha Silva <gars.dba@gmail.com>
7
#
8
# Created:
9
#    5th of november 2007
10
#
11 829d00af Nozomu Kaneko
# Modified:
12
#    22th of September 2011 by Nozomu Kaneko <nozom.kaneko@gmail.com>
13
#
14 090a4405 Guilherme Augusto da Rocha Silva
# Usage:
15
#    Place in /etc/munin/plugins/ (or link it there using ln -s)
16
#
17
# Parameters:
18
#    config   (required)
19
#
20
# General info:
21
#    Require permission for database access and read (no writes are processed).
22 fba800ae Veres Lajos
#    Recommended user is PostgreSQL database owner (default: postgres).
23 090a4405 Guilherme Augusto da Rocha Silva
#
24
# Log info:
25
#
26
27
dbserver='localhost'
28
dbuser='postgres'
29
30 829d00af Nozomu Kaneko
modes="AccessExclusive AccessShare Exclusive RowExclusive RowShare Share ShareRowExclusive ShareUpdateExclusive"
31
32 090a4405 Guilherme Augusto da Rocha Silva
if [ "$1" = "config" ]; then
33
   echo 'graph_args --lower-limit 0'
34 29bdf34e dipohl
   echo 'graph_category db'
35 090a4405 Guilherme Augusto da Rocha Silva
   echo 'graph_info Shows active locks on database server.'
36
   echo 'graph_scale no'
37
   echo 'graph_title PostgreSQL Active Locks'
38
   echo 'graph_vlabel Number of active locks'
39 829d00af Nozomu Kaneko
   for mode in $modes; do
40
     echo $mode.label $mode
41
     echo $mode.info `echo $mode | perl -pe 's/(.)([A-Z])/$1 $2/g'` Lock.
42
   done
43 090a4405 Guilherme Augusto da Rocha Silva
   exit 0
44
fi
45
46 829d00af Nozomu Kaneko
for mode in $modes; do
47
   eval ${mode}=0
48
done
49
50
eval $(psql -h ${dbserver} -U ${dbuser} template1 -tc "SELECT trim(mode, 'Lock'), COUNT(*) FROM pg_locks GROUP BY mode ORDER BY 1;" | while read name sep num
51 090a4405 Guilherme Augusto da Rocha Silva
do
52
   test -z "${name}" && continue
53 829d00af Nozomu Kaneko
   echo ${name}=${num}
54
done)
55
56
for mode in $modes; do
57 2eb1e295 Nozomu Kaneko
   echo ${mode}.value $(eval echo \$$mode)
58 090a4405 Guilherme Augusto da Rocha Silva
done