NEWS
ioBroker Prozess- & Gesundheitsmonitor + Grafana Dashboard
-
ioBroker Prozess-Monitor v4.5.8 — Langzeit-Gesundheitsmonitoring
Ich stelle hier mein Script für ein erweitertes Prozess- und Gesundheitsmonitoring von ioBroker vor, inklusive passendem Grafana-Dashboard für InfluxDB v1/v2.
Hinweis: Das Script ist in enger Zusammenarbeit mit KI-Unterstützung entstanden
(Code-Generierung & Feintuning), wurde aber in einer produktiven Umgebung
getestet und laufend manuell überprüft.Kern-Features
- Core: Läuft ohne eigenen Adapter — nutzt nur js-controller States (
system.adapter.*,system.host.*) - Optional: Telegram-Alarme, REST-API (externer Zugriff)
- Dashboard: InfluxDB + Grafana (v1 getestet, v2 ungetestet)
Funktionen:
- CPU/RAM-Monitoring aller laufenden Adapter (Top5, Summen)
- Restart-Tracking: Flaky Adapter, Cron-Restarts getrennt
- Memory-Leak-Erkennung (restart-resistent, Confidence-Levels)
- Log-Error-/Warn-Tracking (Echtzeit, 1h/24h-Stats, Top5)
- Deadlock-Erkennung (alive=true, connected=false)
- Degraded Adapter: Hohe Error-Rate + CPU/Lag-Probleme
- Host-System (CPU/RAM) + Disk-Monitoring
- Health Score pro Adapter (CPU/RAM/Uptime/Leak/Connection/Logs)
- Telegram-Benachrichtigungen mit individuellen Cooldowns
- InfluxDB-optimierte States unter
0_userdata.0.Systeminfos.ioBroker.Prozesse
🔄 Testphase/Tuning (Feedback willkommen!):
- Flaky: 3 Restarts/24h → Optimal? (Cron toleriert)
- Errors: 20/h critical, 5/h warning → Anpassen?
- Worst/Best Performer: Health-Score-Gewichte
- Degraded: Errors+CPU(15%)+Lag(500ms)
- EventLoopLag: 500ms critical → Hardware-abhängig?
- Memory Leak: R²>0.65, Growth>15MB/h → Fine-Tuning?
- Deadlock: alive=true+!connected → Erweiterung?
Getestet auf: RPi, VM, LXC, Docker/Unraid (Docker-produktiv)
Ziel: Früherkennung schleichender Probleme in produktiven ioBroker-Systemen.
Im Beitrag:
- Script v4.5.8 (Changelog-abgekürzt, 3 Konfig-Profile)
- Grafana-Dashboard InfluxDB v1 (produktiv getestet)
- Grafana-Dashboard InfluxDB v2 (ungetestet, Feedback erwünscht)-aktuell noch nicht vorhanden
- Datenpunkte die für Influxdb benötigt werden, alle übrigen werden per infinity plugin direkt per rest-api geholt

Feedback, Tests in anderen Umgebungen und Verbesserungsvorschläge willkommen! 🚀
Das Dashboard (InfluxDB V1)
dashboard-dynamisch.txt

- Core: Läuft ohne eigenen Adapter — nutzt nur js-controller States (
-
Servus, da ich ja auf sowas stehe (Dashboards), Grafana und influxDB 1.8 nutze, dachte ich mir "komm schau es dir mal an" aber zu meinem Bedauern muss ich sagen ist zwar schön aber nicht so einfach wie gedacht zu nutzen.
Ich will damit nicht sagen das es nicht läuft, aber die Einrichtung und die Darstellung in Grafana sind schon eine Hürde die mich als "normaler" Anwender abschreckt. Man weiß nicht so richtig was man wo und wie einstellen muss, welche Datenpunkt man benötigt usw.Ich weiß das eine Anleitung viel Arbeit macht, aber eine kurze mit Beispielen wäre eine nette Zugabe.
Aber das ist allen meine persönliche Meinung, die Profis hier im Forum mögen das anders sehen.Trotzdem schöne Arbeit und Respekt meinerseits.
-
Servus, da ich ja auf sowas stehe (Dashboards), Grafana und influxDB 1.8 nutze, dachte ich mir "komm schau es dir mal an" aber zu meinem Bedauern muss ich sagen ist zwar schön aber nicht so einfach wie gedacht zu nutzen.
Ich will damit nicht sagen das es nicht läuft, aber die Einrichtung und die Darstellung in Grafana sind schon eine Hürde die mich als "normaler" Anwender abschreckt. Man weiß nicht so richtig was man wo und wie einstellen muss, welche Datenpunkt man benötigt usw.Ich weiß das eine Anleitung viel Arbeit macht, aber eine kurze mit Beispielen wäre eine nette Zugabe.
Aber das ist allen meine persönliche Meinung, die Profis hier im Forum mögen das anders sehen.Trotzdem schöne Arbeit und Respekt meinerseits.
@RoddiEF sagte in ioBroker Prozess- & Gesundheitsmonitor + Grafana Dashboard:
welche Datenpunkt man benötigt
hab ich oben ergänzt
@RoddiEF sagte in ioBroker Prozess- & Gesundheitsmonitor + Grafana Dashboard:
aber die Einrichtung und die Darstellung in Grafana
eigendlich sollte alles 1:1 sein, natürlich muss die Data source (Influxdb) angepasst werden und auch die IP in der URL für Infinity
generell bin ich noch am optimieren und hab heute nochmals etwas angepasst, script und dashboard in der aktuellen Fassung sind oben eingefügt
edit:
script ist noch in Bearbeitung um weniger Datenpunkte anzulegen
das Dashboard werde ich noch auf dynamisch mit Variablen umstellen, dann ist es einfacher zum einfügen. Ich ändere das die Tage umund stell es oben bereithab es umgestellt und steht im ersten Beitrag bereit
-
guten Abend @crunchip
ich habe das jetzt mal aktuallisiert und eine Frage zu diesen Bereich im Grafana-Dashboard:
{ "current": { "selected": true, "text": "http://localhost:8093", "value": "http://localhost:8093" }, "hide": 2, "name": "iobroker_url", "options": [ { "selected": true, "text": "http://localhost:8093", "value": "http://localhost:8093" } ], "query": "http://localhost:8093", "skipUrlSync": false, "type": "textbox" }Holt sich das Dashboard direkt die Daten ohne das man die selber in eine InfluxDB schreiben lassen muss und wenn ja muss das auf die eigene (unter der der ioBroker läuft der bei mir als Container auf einem Unraid unter http://unraid-ip:8081 läuft) geändert werden oder für was ist diese URL wichtig/nötig?
Sorry für die Fragen aber ich versuche das zu Verstehen und bin kein Profis.
-
guten Abend @crunchip
ich habe das jetzt mal aktuallisiert und eine Frage zu diesen Bereich im Grafana-Dashboard:
{ "current": { "selected": true, "text": "http://localhost:8093", "value": "http://localhost:8093" }, "hide": 2, "name": "iobroker_url", "options": [ { "selected": true, "text": "http://localhost:8093", "value": "http://localhost:8093" } ], "query": "http://localhost:8093", "skipUrlSync": false, "type": "textbox" }Holt sich das Dashboard direkt die Daten ohne das man die selber in eine InfluxDB schreiben lassen muss und wenn ja muss das auf die eigene (unter der der ioBroker läuft der bei mir als Container auf einem Unraid unter http://unraid-ip:8081 läuft) geändert werden oder für was ist diese URL wichtig/nötig?
Sorry für die Fragen aber ich versuche das zu Verstehen und bin kein Profis.
@RoddiEF ja genau, in der Variablen kommt deine IP des iobroker rein, das plugin infinity holt sich dann die Daten direkt durch den Rest-API Adapter ohne es extra in eine Datenbank zu schreiben.
Was noch zu erwähnen ist (fehlt noch in der Beschreibung) durch das Setzen einer Host Variablen, muss der Host unter security in der datasource angegeben werden. In dem Fall einfach nur einen *
Damit ist jeder Host gültig.
Ich beschreibt das morgen mal etwas genauer