-
Notifications
You must be signed in to change notification settings - Fork 0
Error Monitoring
Matthias Schabhüttl edited this page Jun 12, 2026
·
1 revision
OpenSchichtplaner5 verfügt über ein eingebautes Error Monitoring System mit strukturiertem JSON-Logging und einem Health-Dashboard.
Der Health-Status ist über die API abrufbar:
GET /api/health
Antwort:
{
"status": "ok",
"uptime_seconds": 3600,
"error_rate": 0.02,
"last_errors": [],
"db_accessible": true,
"version": "1.0.0",
"memory": { "rss_mb": 128, "heap_mb": 96 },
"disk": { "total_gb": 50, "used_gb": 22, "free_gb": 28, "usage_percent": 44 },
"api_response_time_ms": 12
}Alle Server-Events werden als strukturierte JSON-Logs ausgegeben:
{
"timestamp": "2026-02-28T15:00:00Z",
"level": "ERROR",
"module": "api.schedule",
"message": "DBF read failed",
"error": "FileNotFoundError",
"path": "/api/schedule",
"user": "admin",
"duration_ms": 42
}| Level | Bedeutung |
|---|---|
INFO |
Normale Operationen (API-Zugriffe, Änderungen) |
WARNING |
Unerwartete Zustände ohne Auswirkung auf Betrieb |
ERROR |
Fehler, die einen Request scheitern lassen |
CRITICAL |
Systemfehler, die sofortige Aufmerksamkeit erfordern |
Fehler werden automatisch kategorisiert:
- DB_ERROR — Datenbankzugriffsfehler (DBF nicht erreichbar, gesperrt)
- AUTH_ERROR — Authentifizierungs-/Autorisierungsfehler
- VALIDATION_ERROR — Ungültige Eingabedaten
- NOT_FOUND — Angeforderte Ressource nicht gefunden
- SERVER_ERROR — Interne Serverfehler
Die JSON-Logs lassen sich einfach in gängige Log-Aggregatoren integrieren:
-
Loki + Grafana —
docker run grafana/promtail - ELK Stack — Filebeat → Elasticsearch
- systemd-journald — Direkte Integration bei Systemd-Deployment
- Installation — Server-Setup und Log-Konfiguration
- Administration — System-Administration
- Audit-Log — Änderungshistorie der Anwendung
- Health-Check — Erweiterter Health-Endpoint & Dashboard-Widget
Home — Startseite
- Installation — Installation & Setup
- Erste-Schritte — Quick Start Guide
- Onboarding-Wizard — 🧭 Ersteinrichtung
- Onboarding-Checkliste — ✅ Setup-Fortschritt
- Dashboard — Charts, Widgets & Performance
- Dienstplan — Dienstplan, Einsatzplan
- Kalender-Ansicht — 🗓️ Monatskalender
- Drag-and-Drop — 🖱️ Drag & Drop im Kalender
- Recurring-Shifts — 🔁 Wiederkehrende Schichten
- Schichtplan-Kommentare — 📝 Tagesnotizen
- Dienstplan-Vorlagen — 📋 Templates
- Undo-Redo — ↩️ Rückgängig/Wiederherstellen
- Jahresuebersicht — Jahresübersicht (Tagesraster)
- Personaltabelle — 📋 Kennzahlen-Auswertung
- Personalbedarf — 📌 Min/Max & Besetzungsampel
- Schichtwunsch-Kalender — 💬 Persönlicher Schichtkalender
- Schichtwuensche — Schichtwünsche & Sperrtage
- Verfuegbarkeit — 📅 Mitarbeiter-Verfügbarkeit
- Tauschboerse — 🔄 Schicht-Tauschbörse
- Urlaubsverwaltung — Urlaub & Abwesenheiten
- Jahresabschluss — 🎯 Überträge & Resturlaub-Verfall
- Ueberstunden — Überstunden-Dashboard & Tracking
- Arbeitszeit-Regelwerk — ⚖️ Arbeitszeitregeln
- Team-Kalender — 🗓️ Team-Kalender
- Team-Uebersicht — 👥 Team-Übersicht
- Berichte — Alle Berichte (20+)
- Scheduled-Reports — 📤 Automatische Berichte
-
Konflikt-Report —
⚠️ Konflikterkennung - Abwesenheits-Statistiken — 📊 Abwesenheitsauswertung
- Mitarbeiter-Timeline — 📅 Zeitachse
- Fairness-Score — 📐 Fairness-Score
- Mitarbeiter-Vergleich — ⚖️ Mitarbeiter-Vergleich
- Analytics-Charts — 📈 Analytics & Charts
- Jahresrueckblick — 🗓️ Jahresrückblick
- Import-Export — CSV/XLSX Import & Export
- Bulk-Import — 📦 Massenimport (Drag&Drop)
- Export-Scheduler — 📅 Automatischer Berichtsversand
- iCal-Export — 📅 iCal & Kalender-Abo
- Drucken — Drucken & PDF-Export
- Druckvorschau — Interaktive Print-Vorschau
- Mitarbeiter — Personal & Gruppen
- Foto-Upload — 📸 Mitarbeiter-Profilfotos
- Stammdaten — Schichten, Modelle, Zuschläge
- Feiertage — 🎉 Feiertage & Österreich-Import
- Kompetenz-Matrix — 📊 Qualifikations-Matrix
- API-Versionierung — 🔀 Versionierte API-Routes
- Webhook-System — 🔗 Webhooks
- Echtzeit-Updates — 📡 SSE Live-Updates
- Notification-Settings — 🔔 E-Mail-Einstellungen
- Multi-Tenant — 🏢 Mandantenverwaltung
- Benutzerverwaltung — Benutzer & Rechte
- Zwei-Faktor-Authentifizierung — 🔐 2FA (TOTP)
- Administration — Backup & Wartung
- Datenbank-Backup — 💾 Backup & Restore
- Rate-Limit-Dashboard — 🚦 Rate-Limit Monitoring
- Protokoll — Aktivitätsprotokoll
- Keyboard-Shortcuts — ⌨️ Tastaturkürzel
- Keyboard-Navigation — ⌨️ Vollständige Tastatur-Bedienbarkeit
- Security — 🔒 Sicherheit, CSP, CORS
- Health-Check — 🏥 Systemmetriken
- Konfiguration — ⚙️ ENV-Variablen
- PostgreSQL-Support — 🐘 PostgreSQL-Datenbank
- Auto-Migration — 🔄 Auto-Schema-Migration
- Datenbankformat — Technisches: DBF & SQLite
- ORM-Spiegel — 🪞 ORM-Spiegel (Admin)
- Error-Monitoring — 🔍 Logging & Monitoring
- Self-Service-Portal — 👤 Mitarbeiter Self-Service
- Dark-Mode — 🌙 Dark Mode (System-Preference)
- Command-Palette — 🔍 Schnellsuche (Ctrl+K)
- In-App-Changelog — 🔔 Changelog
- PWA — 📲 Progressive Web App
- Sprachumschalter — 🌍 DE/EN i18n
- Library (lib) — Datenbankformat & CLI
- REST-API — Endpunkt-Referenz