37 lines
886 B
Plaintext
37 lines
886 B
Plaintext
|
#!/usr/bin/python3
|
||
|
import re
|
||
|
import subprocess
|
||
|
import time
|
||
|
|
||
|
import ltsdb_record
|
||
|
|
||
|
p = subprocess.run(["psql", "-c", "select version()", "-A", "-t", "-X", "-q",],
|
||
|
stdout=subprocess.PIPE, universal_newlines=True)
|
||
|
|
||
|
# This works only for PostgreSQL 10.x and above. I don't expect to encounter
|
||
|
# older versions any more.
|
||
|
m = re.match(r"^PostgreSQL (\d+).(\d+) ", p.stdout)
|
||
|
if m:
|
||
|
version = int(m.group(1)) + int(m.group(2)) / 100
|
||
|
|
||
|
report0 = []
|
||
|
report0.append({ "measure": "postgresql_version", "unit": "version", "value":
|
||
|
version})
|
||
|
now = time.time()
|
||
|
report = [
|
||
|
{
|
||
|
"description": {
|
||
|
"hostname": ltsdb_record.node,
|
||
|
"measure": r["measure"],
|
||
|
"unit": r["unit"]
|
||
|
},
|
||
|
"data": [
|
||
|
[now, r["value"]]
|
||
|
]
|
||
|
}
|
||
|
for r in report0
|
||
|
]
|
||
|
|
||
|
success = ltsdb_record.record_observations(report)
|
||
|
exit(1 - success)
|