# Monitoring und Alerting ## Überblick Das Projekt implementiert ein einfaches Monitoring-System, um die Laufzeit des Systems zu überwachen. Es bietet einen `/metrics` Endpoint an, der grundlegende Systeminformationen bereitstellt. ## /metrics Endpoint Der `/metrics` Endpoint ist unter folgender URL erreichbar: ``` GET /metrics ``` ### Antwortstruktur ```json { "uptime": 1234.56, "memory": { "rss": 20480000, "heapTotal": 10240000, "heapUsed": 8192000, "external": 102400 }, "timestamp": "2026-03-06T23:47:00.000Z" } ``` ### Beschreibung der Felder - `uptime`: Laufzeit des Prozesses in Sekunden - `memory.rss`: Resident Set Size (gesamter Speicherverbrauch) - `memory.heapTotal`: Gesamter JavaScript-Heap-Speicher - `memory.heapUsed`: Verwendeter JavaScript-Heap-Speicher - `memory.external`: Externer Speicher (z.B. von Native Addons) - `timestamp`: Zeitstempel der Anfrage ## Unraid-kompatibler Check Für die Integration mit Unraid kann der `/metrics` Endpoint als Healthcheck verwendet werden: 1. **Statusabfrage**: `curl http://:/metrics` 2. **Prüfung auf Antwortzeit**: Die Antwort sollte innerhalb von 500ms erfolgen 3. **Prüfung auf Statuscode**: HTTP 200 OK ## Alerting Für das Alerting können folgende Schwellenwerte definiert werden: - **Uptime**: Bei einem Anstieg der Uptime über einen bestimmten Wert (z.B. 1 Tag) kann eine Warnung ausgelöst werden - **Memory Usage**: Bei Verwendung von mehr als 80% des verfügbaren Speichers kann eine Warnung ausgelöst werden - **Response Time**: Bei Antwortzeiten über 500ms kann eine Warnung ausgelöst werden ## Implementierung Die Implementierung erfolgt im Backend unter Verwendung von Node.js Built-ins: - `process.uptime()` für die Laufzeit - `process.memoryUsage()` für den Speicherverbrauch