prometheus-odoo-license-exp.../prometheus-odoo-license-exp...

38 lines
1.0 KiB
Python
Executable File

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from prometheus_client import start_http_server, Gauge
from datetime import datetime
from time import sleep
import psycopg2
USER = "odoo"
HTTP_PORT = 9402
INTERVAL = 10
# FIXME: Make a parameter
DBNAME = "edurable_staging"
if __name__ == '__main__':
# Setup prometheus Gauge
prom_days = Gauge(
'odoo_license_remaining_days',
"Remaining days before Odoo license expiration")
# Serve metrics over HTTP
start_http_server(HTTP_PORT)
# Open connection
with psycopg2.connect(database=DBNAME, user=USER) as conn:
cur = conn.cursor()
while True:
cur.execute("SELECT value FROM ir_config_parameter WHERE key =" +
"'database.expiration_date';")
expiration_date = datetime.strptime(cur.fetchone()[0].split()[0],
"%Y-%m-%d").date()
now = datetime.now().date()
prom_days.set((expiration_date - now).days)
sleep(INTERVAL)