#!/usr/bin/python3 import time import re import psycopg2 import psycopg2.extras import ltsdb_record db = psycopg2.connect() # We only get useful results if we are postgres, but for testing we can be any user csr = db.cursor(cursor_factory=psycopg2.extras.NamedTupleCursor) csr.execute( """ select datname, count(*) from pg_stat_activity where backend_type = 'client backend' group by datname order by datname """) total = 0 now = time.time() report0 = [] for r in csr: report0.append( { "measure": "connections", "database": r.datname, "unit": "connections", "value": r.count } ) total += r.count report0.append( { "measure": "connections", "database": "ALL", "unit": "connections", "value": total } ) report = [ { "description": { "hostname": ltsdb_record.node, "measure": r["measure"], "database": r["database"], "unit": r["unit"] }, "data": [ [now, r["value"]] ] } for r in report0 ] success = ltsdb_record.record_observations(report) exit(1 - success)