Store health monitor
Der Store-Health-Monitor ist ein optionales Modul, das die betrieblichen Signale Ihres Shops im Hintergrund überwacht und Sie benachrichtigt, wenn etwas nicht mehr funktioniert. Anders als das Shop-Audit (Compliance-Prüfungen auf Abruf) und das Vorfallregister (ein manuelles Protokoll) läuft dieses Modul nach einem Zeitplan und bewertet drei Signale eigenständig: fatale Frontend-Fehler, die Fehlerquote beim Bestellabschluss und eine Verkaufsanomalie (“Besucher, aber keine Bestellungen”).
Die Erkennung ist passiv: Das Modul beobachtet echte WooCommerce-Ereignisse und den Bestellverlauf. Es gibt niemals synthetische Testbestellungen auf, kann also keine falschen Bestellungen erstellen oder Karten belasten. Der Nachteil ist, dass ein Zahlungsproblem erst dann erkannt wird, wenn ein echter Kunde darauf stößt, und nicht proaktiv.
Modul aktivieren
Section titled “Modul aktivieren”Das Modul ist standardmäßig deaktiviert. Aktivieren Sie es unter WooCommerce > Polski > Module (“Store health monitor”). Nach der Aktivierung werden die Prüfungen alle 5 Minuten über WP-Cron ausgeführt. Das Dashboard finden Sie unter WooCommerce > Polski > Berichte & Werkzeuge > Store health. Es erfordert die Berechtigung manage_woocommerce.
Sensoren
Section titled “Sensoren”| Sensor | Was er überwacht |
|---|---|
| Fatale Fehler (Frontend) | Fatale PHP-Fehler auf Shop-Seiten (shutdown-Handler). Fehler im Admin-Bereich und im Cron werden ignoriert. Gelten als 15 Minuten nach ihrem Auftreten aktiv. |
| Bestellabschluss / Zahlungen | Der Anteil fehlgeschlagener Bestellabschlüsse in den letzten 2 Stunden. Beobachtet den klassischen Bestellabschluss, den Block-Bestellabschluss (Store API) und den Bestellstatus “fehlgeschlagen”. |
| Verkaufsanomalie | Vergleicht die Bestellungen der vorangegangenen vollen Stunde mit der typischen Anzahl für denselben Wochentag und dieselbe Stunde in den letzten 8 Wochen. Wird höchstens einmal pro Stunde ausgewertet. |
Status
Section titled “Status”| Status | Bedeutung | Farbe |
|---|---|---|
| OK | Alles liegt im Normalbereich | grün |
| Beeinträchtigt | Ein Schwellenwert wurde überschritten, aber es liegt kein vollständiger Ausfall vor | orange |
| Ausfall | Ein schwerwiegendes Problem (z. B. ein fataler Fehler oder keine Verkäufe) | rot |
Der Gesamtstatus entspricht dem schlechtesten Status aller Sensoren.
Wie die Schwellenwerte funktionieren
Section titled “Wie die Schwellenwerte funktionieren”- Bestellabschluss / Zahlungen: Eine Benachrichtigung wird ausgelöst, wenn die Fehlerquote den Schwellenwert erreicht (standardmäßig 30 %). Oberhalb des 1,5-Fachen des Schwellenwerts eskaliert der Status von “Beeinträchtigt” zu “Ausfall”. Die Quote wird ignoriert, bis eine Mindestanzahl an Bestellabschlüssen beobachtet wurde (standardmäßig 5).
- Verkaufsanomalie: “Ausfall” wird nur gemeldet, wenn für diese Stunde typischerweise mindestens die Schwellenwertanzahl an Bestellungen (standardmäßig 3) üblich ist, in der letzten vollen Stunde aber keine eingetroffen ist.
Benachrichtigungen
Section titled “Benachrichtigungen”Wenn sich der Status im Vergleich zur vorherigen Prüfung verschlechtert, sendet das Modul eine Benachrichtigung. Bei einem anhaltenden Problem wird die Benachrichtigung erst nach einer Abklingzeit wiederholt (standardmäßig 60 Minuten), damit Sie nicht alle 5 Minuten benachrichtigt werden.
| Kanal | Details |
|---|---|
| Wird an die Benachrichtigungsadresse gesendet (standardmäßig die E-Mail-Adresse des Website-Administrators). | |
| Webhook | Optional. Sendet eine JSON-Nutzlast {"text": ...} (Slack/Discord-kompatibel). |
Bei einem Status “Ausfall” wird das Ereignis zudem im Register der Sicherheitsvorfälle erfasst, sofern dieses Modul aktiviert ist, sodass der Ausfall zusammen mit manuell protokollierten Vorfällen einen Audit-Trail erhält.
Dashboard
Section titled “Dashboard”Das Dashboard “Store health” zeigt den Gesamtstatus, den Zeitpunkt der letzten Prüfung (UTC) und eine Tabelle mit jedem Sensor, seinem Status und einer Detailzeile. Die Schaltfläche Prüfung jetzt ausführen erzwingt eine sofortige Auswertung. Wenn der Status nicht “OK” ist, erscheint ein Admin-Hinweis mit einem Link zum Dashboard.
Einstellungen
Section titled “Einstellungen”Die Einstellungen befinden sich auf der Modulkarte unter WooCommerce > Polski > Module.
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Benachrichtigungs-E-Mail | E-Mail des Website-Admins | Wohin Health-Benachrichtigungen gesendet werden. |
| Benachrichtigungs-Webhook-URL | (leer) | Optionaler JSON-Webhook (Slack/Discord). |
| Schwellenwert für fehlgeschlagene Bestellabschlüsse (%) | 30 | Benachrichtigen, wenn dieser Anteil der Bestellabschlüsse innerhalb der letzten 2 Stunden fehlschlägt. |
| Mindeststichprobe an Bestellabschlüssen | 5 | Die Fehlerquote ignorieren, bis mindestens so viele Bestellabschlüsse erfolgt sind. |
| Schwellenwert für Verkaufsanomalie | 3 | Nur benachrichtigen, wenn so viele Bestellungen für die Stunde typisch sind, aber keine eintrifft. |
| Abklingzeit für Benachrichtigungen (Minuten) | 60 | Mindestzeit zwischen wiederholten Benachrichtigungen bei einem anhaltenden Problem. |
REST API
Section titled “REST API”GET /wp-json/polski/v1/store-healthGibt den aktuellen Zustand zurück (Gesamtstatus, Sensoren, Zeitstempel der Prüfung). Erfordert die Berechtigung manage_woocommerce.
Fehlerbehebung
Section titled “Fehlerbehebung”Benachrichtigungen kommen nicht an - überprüfen Sie die E-Mail-Konfiguration von WordPress. Erwägen Sie ein SMTP-Plugin (z. B. WP Mail SMTP) anstelle des standardmäßigen wp_mail().
Der Bestellabschluss-Sensor zeigt “unzureichende Daten” - das ist bei Shops mit wenig Traffic normal. Die Quote wird erst ausgewertet, sobald die Mindeststichprobe an Bestellabschlüssen erreicht ist.
Die Verkaufsanomalie löst nie aus - das Modul benötigt Bestellverlauf aus den Vorwochen für diese Stunde. In einem neuen Shop ist der typische Wert niedrig und der Schwellenwert wird nicht erreicht.
Die Prüfungen werden nicht ausgeführt - WP-Cron läuft bei Traffic auf der Website. Bei Shops mit wenig Traffic erwägen Sie einen System-Cron (wp-cron.php, ausgelöst durch den Cron des Servers).
Probleme melden: github.com/wppoland/polski/issues