Record number of connections per dataabase from pg_stat_activity
This commit is contained in:
parent
1485debaae
commit
5047a56fe8
|
@ -0,0 +1,60 @@
|
||||||
|
#!/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)
|
Loading…
Reference in New Issue