# Monitoring

# Health-Checks

Über einen backendseitigen Health-Check wird geprüft, ob die NLU-Engine der Chatbot-Instanz erreichbar ist. Hierfür wird alle 30 Sekunden testweise der Input "Hallo" abgeschickt und geprüft, dass die erwartete Antwort gegeben wird. Wird dieser fünfmal in Folge nicht korrekt beantwortet, gilt das Backend als unhealthy.

Dieser Health-Endpunkt ist über REST abrufbar und wird von der OpenAPI angefragt, bei der alle NLU-Instanzen registriert sind. Ist dieser Check zehnmal in Folge (Anzahl ist abhängig von der appspezifischen Konfiguration) nicht erfolgreich, wird die jeweilige Engine entfernt.

Über verschiedene API-Endpunkte lässt sich beispielsweise eine Liste aller registrierten Backend-Instanzen (vgl. OpenAPI - /api/v4/nlu/engine/list ) und auch der Health-Status einzelner Instanzen (vgl. OpenAPI - /api/v4/nlu/engine/check ) einsehen. Der allgemeine Health-Status der OpenAPI kann über OpenAPI - /api/health abgerufen werden.

# Monitoring über updown.io

Für das Monitoring der Verfügbarkeit der Chatbots und Chatbot-Editoren wird beim Betrieb durch Kauz updown.io genutzt. Updown.io-Benachrichtigungen können in verschiedene Kanäle (z. B. Webhook, Slack, E-Mail, SMS etc.) integriert werden, sodass Benachrichtigungen zu Downtimes jederzeit empfangen werden können.

Updown.io prüft (je nach Konfiguration) alle fünf Minuten randomisiert von einem von 8 Orten auf der Welt, ob die hinterlegte URL erreichbar ist bzw. den gewünschten Status zurückgibt. Ist dies dreimal in Folge nicht der Fall, wird eine Benachrichtigung über eine Downtime versandt. Bei updown.io ist i. d. R. OpenAPI - /api/v4/nlu/engine/check als Endpunkt hinterlegt.