from pymongo import MongoClient

# Konstanten für Schwellwerte
WARNUNGSGROESSE_GB = 0.5
KRITISCHGROESSE_GB = 1.0

# Verbindung zur MongoDB herstellen
client = MongoClient('mongodb://localhost:27017/')

# Alle Datenbanknamen abrufen
db_names = client.list_database_names()

# Durch jede Datenbank iterieren und die Statistiken abrufen
for db_name in db_names:
    db = client[db_name]
    stats = db.command('dbstats')

    # Größe in Gigabytes umrechnen
    groesse_gb = stats['dataSize'] / (1024**3)

    # Prüfe die Größe gegen Schwellwerte und gebe entsprechenden Status aus
    if groesse_gb > KRITISCHGROESSE_GB:
        status = 2  # Kritisch
        status_message = "CRITICAL"
    elif groesse_gb > WARNUNGSGROESSE_GB:
        status = 1  # Warnung
        status_message = "WARNING"
    else:
        status = 0  # OK
        status_message = "OK"

    print(f"{status} MongoDB_{db_name}_Groesse - {status_message} - Groesse: {groesse_gb:.2f} GB")

# MongoDB-Verbindung schließen
client.close()

