Oncall Bot und Frontend-Monitoring
Alarmierung auf relative Veränderungen in ClickHouse-Telemetrie plus ein LLM-gestützter Chatbot, der aus einem Alarm eine wahrscheinliche Ursache macht, direkt im Thread, in dem das Team ohnehin arbeitet.
- Rolle
- Senior Frontend Engineer
- Zeitraum
- 2025–heute
- Stack
- ClickHouse · Alerting service · LLM API · Kubernetes · Internal chat bot
Das Problem
Stille Abbrüche bei der Übergabe an Drittanbieter, etwa bei NFC-Prüfungen, fielen erst Tage später über den Kundensupport auf. Unsere Alarme beruhten auf festen Schwellenwerten und waren laut, also hatten alle gelernt, sie zu ignorieren.
Der Ansatz
- Relative Basislinien statt fester Schwellen. Der Alarmdienst führt SQL gegen ClickHouse aus und vergleicht jede Kennzahl mit derselben Stunde der Vorwoche. Ein Conversion-Rückgang um 20 % bedeutet um 3 Uhr nachts in Tokio etwas anderes als mittags in Berlin, und globale Traffic-Schwankungen lösen keine Fehlalarme mehr aus.
- Ein Alarm, der Kontext mitbringt. Löst ein Alarm aus, postet er eine Störungskarte in die interne Chatplattform. Ein Hintergrund-Worker sammelt dann aktuelle Frontend-Stacktraces aus ClickHouse, die aktive Konfigurationsversion aus dem Konfigurationsdienst und Kubernetes-Deployment-Logs und schickt sie als strukturierten Prompt an eine Enterprise-LLM-API.
- Eine Zusammenfassung im Thread. Der Bot antwortet mit einer wahrscheinlichen Ursache, zum Beispiel: Conversion in Schritt 3 in Japan um 32 % gesunken, ein Null-Pointer-Fehler im NFC-Bridge-Wrapper, eine 15 Minuten zuvor ausgerollte Konfigurationsänderung und ein Timeout im Gateway eines Anbieters im Backend.
Das Ergebnis
Die Zeit bis zur Erkennung sank von Stunden oder Tagen auf unter 5 Minuten, die Zeit bis zur Eindämmung um 65 % und die Fehlalarme um 80 %. Zusätzlich wurden das Signal-Rausch-Verhältnis der Alarme (der Anteil der Alarme, die zu echten Störungen gehören) und die mittlere Zeit zwischen Ausfällen der Frontend-Module verfolgt.
Warum so
Ein normaler Alarm sagt nur, dass etwas kaputt ist. Daten automatisch zu sammeln und zusammenzufassen schließt die Lücke zwischen einer Kennzahl und einem Menschen, der sie versteht, und genau dort ging die meiste Reaktionszeit verloren.