New Relic betreibt eine der weltweit führenden Kafka-Implementierungen sowie Hunderte von Services, die Kafka als Producer und/oder Consumer nutzen. Schon früh legte das New Relic Streaming-SRE-Team den Grundstein für den Aufbau einer zuverlässigen Kafka-Umgebung im Dienste unserer Kundschaft. Zum Beispiel kann Kafka Lag direkt mit Verzögerungen oder Unterbrechungen bei der Telemetrieerfassung einhergehen. Dies wiederum kann dazu führen, dass Kunden-Alerts verpasst oder verzögert werden. Die Zuverlässigkeit von Kafka ist also nach wie vor von entscheidender Bedeutung.
Das Team ist speziell für Kafka-Operationen zuständig, und so konzentrierte man sich auf die Erstellung eines Custom-Nerdpacks für Kafka-Observability. Dieses speziell auf New Relic zugeschnittene Nerdpack mit zahlreichen Custom-Metriken wurde zu einem unverzichtbaren Tool für über 50 interne Teams, die Kafka-Services nutzen, und die operativen Erkenntnisse erwiesen sich als so wertvoll, dass sie direkt zur Entwicklung kundenorientierter Kafka- und Observability-Features beitrugen.
Die Hauptmotivation für den Aufbau einer derart umfangreichen Kafka-Observability war, dass man die blinden Flecken abschaffen wollte, die bei Incidents oft ein Problem darstellen. Ohne granulare Daten war es nicht leicht, die zugrunde liegenden Fehlerursachen zu ermitteln und wiederkehrende Probleme schnell zu finden. Das Ziel war „stapelweise Observability“, um das Verhalten von Kafka vor, während und nach Incidents wirklich vollständig zu verstehen.
Das maßgeschneiderte Kafka-Nerdpack liefert tiefe Einblicke in eine Vielzahl von Metriken. Diese Einblicke nutzt das Streaming-SRE-Team für folgende Zwecke:
- Auslösen von Alerts zu Kafka Lag, damit die Datenerfassungsintegrität aufrechterhalten wird: Der wichtigste Zweck, für den das Team New Relic einsetzt, ist die Integrität der Telemetrieerfassung, und diese wird mithilfe von Alerts zu Kafka-Metriken wie Kafka Lag gewährleistet. Kafka Lag korreliert direkt mit Verzögerungen oder Unterbrechungen bei der Telemetrieerfassung, was dazu führen kann, dass kritische Kunden-Alerts verpasst oder verzögert werden. Dies stellt ein erhebliches Geschäftsrisiko dar, da die Kundschaft auf zeitnahe Alerts angewiesen ist. Umfassende Alerts zu Kafka Lag ermöglichen die Erfassungsskalierung und Performance-Optimierung.
- Maximieren der Reaktionsfähigkeit: New Relic versetzt das Team in die Lage, rasch auf Kafka-Verarbeitungsprobleme zu reagieren, sodass sie schnell behoben und eventuelle Auswirkungen auf Kundenseite minimiert werden.
- Verständnis des Kafka-Clientverhaltens: Dazu zählt die Erkennung von Fehlkonfigurationen, überlasteten Puffern und ins Stocken geratenen Clients.
- Überwachen der serverseitigen Integrität: Monitoring von Brokerleistung und Ressourcennutzung.
- Beobachten von Anfragenmustern: Analyse von Änderungen in Client-Anfragenmustern, um potenziellen Problemen zuvorzukommen.
Die Implementierung von Kafka-Observability hatte tiefgreifende Auswirkungen auf die betriebliche Effizienz und Zuverlässigkeit von New Relic:
- Deutlich schnellere Fehlerbehebung: Da das Streaming-SRE-Team jetzt umfassende Observability-Daten an der Hand hat, kann es Kafka-Client-Incidents innerhalb von Minuten diagnostizieren und den gesamten Zeitaufwand bis zur Behebung ebenfalls oft in Minuten und Sekunden zählen. Ohne solch detaillierte Einblicke dauerte das Ganze früher manchmal eine Stunde oder länger.
- Nerdpacks als dynamische Runbooks: Eine wichtige Innovation, für die sich das SRE-Team einsetzt, ist die Verwendung von New Relic Nerdpacks als dynamische Runbooks. In diesen benutzerdefinierten Anwendungen werden Textanweisungen mit Live-Abfrageergebnissen und Visualisierungen kombiniert. Zum Beispiel können Probleme mit Kafka-Pipeline-Stalls über Ansichten auf dem Nerdlet diagnostiziert werden, das zudem automatisch den erforderlichen Befehl generiert, um die Daten-Retention zu verlängern und einen mehrstufigen manuellen Prozess in einen einzigen Copy-Paste-Vorgang zu verwandeln. Dadurch werden mühselige Kontextwechsel deutlich reduziert und die Problembehebung wird beschleunigt.
- Einblicke für Führungskräfte: C-Suite- und andere Führungskräfte bei New Relic nutzen das Kafka-Observability-Nerdlet, um den Gesamtstatus von Verzögerungen über ganze Kafka-Cluster oder Umgebungen hinweg schnell zu bewerten und sich einen Überblick über die Erfassungsleistung und Skalierbarkeit zu verschaffen.
- Intelligente Autoskalierung für Performance- und Kostenoptimierung: Das Streaming-SRE-Team hat durchdachte Autoskalierungstools entwickelt, die sowohl New Relic Telemetrie als auch benutzerdefinierte Metriken verwenden. So zum Beispiel New Relic CPU-Metriken, um Kubernetes-Ressourcen je nach Traffic dynamisch hoch- oder herunterzuskalieren. So kann das Team Trafficspitzen bei der Erfassung effektiv managen und Verzögerungen durch Hochskalieren aus der Welt räumen. Bei geringem Traffic wird dann wieder herunterskaliert. Die dynamische Autoskalierung verhindert eine Überbereitstellung von Ressourcen und gewährleistet Kosteneffizienz – aber ohne die Kapazität zur Bewältigung schwankender Workloads aufs Spiel zu setzen.