import pandas as pd import mariadb as mdb import configparser config = configparser.ConfigParser() config.read("/var/lib/zabbix/.my.cnf") nc_usr = config["client"].get("user") nc_usr_pwd = config["client"].get("password") ## The following variables must be filled in by the user nc_db = "nextcloud_db" #tables_to_monitor = "'oc_filecache','oc_comments','oc_authtoken','oc_circles_event','oc_share'" ## conn = mdb.connect( user=nc_usr, password=nc_usr_pwd, host="localhost", port=3306, database=nc_db ) cur = conn.cursor() cur.execute( """ SELECT TABLE_NAME AS table_name, TABLE_ROWS AS nr_rows, (DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024 AS size_mb FROM information_schema.TABLES WHERE TABLE_SCHEMA='%s' ORDER BY size_mb DESC LIMIT 5 """ % nc_db ) df = pd.DataFrame( cur.fetchall(), columns=["table_name","nr_rows","size_mb"] ) df.to_json( "/var/lib/zabbix/output/db_metrics.json", orient='columns')