File: //lib/python2.7/site-packages/lap/slony.py
import psycopg2
import yaml
# This plugin and pgsql.py are almost the same.
# It's possible to create a generic query plugin
def __run__(params):
conn = None
try:
conn = psycopg2.connect(host=params.get('host'),
port=int(params.get('port')),
database=params.get('dbname'),
user=params.get('user'),
password=params.get('passwd'))
cursor = conn.cursor()
thresolds = yaml.load(params.get('thresholds'))
cursor.execute("select * from replication_status")
(name, d, d_int) = cursor.fetchone()
if d_int > int(thresolds['critical']):
return [2, 'CRITICAL: Behind {0} minutes'.format(d_int)]
elif d_int > int(thresolds['warning']):
return [1, 'WARNING: Behind {0} minutes'.format(d_int)]
else:
return [0, 'OK: Behind {0} minutes'.format(d_int)]
except Exception, e:
return [2, 'CRITICAL: {0}'.format(str(e))]