Messaging-Systeme

Kafka-Cluster testen und überwachen: Kafka Monitor ist Open Source

Melanie Feldmann

© Shutterstock/ J Morc

LinkedIn hat das Tool Kafka Monitor Open Source gestellt. Das Monitoring und Testing Framework überwacht Kafka-Cluster in Produktion und ermöglicht Regressionstests in Test-Clustern.

Früher hatten die LinkedIn-Entwickler auf Reports der Server zurückgegriffen, um ein Kafka-Cluster zu überwachen. Sobald dort Abnormalitäten auftraten, war etwas Faul im Staate Kafka. Jedoch war die Auswertung der Metriken nicht so einfach. Vor allem war es schwer nachzuvollziehen, wie die User Experience des Endanwenders aussieht, wenn beispielsweise nur ein Teil eines Clusters nicht erreichbar ist. Umso größer die Kafka-Cluster bei LinkedIn wurden, umso deutlicher wurde, dass sie eine bessere Möglichkeit für das Monitoring brauchen.

Auch wenn Apache Kafka bereits Unit-Tests und Systemtest in einer Virtuellen Maschine mitbringt, tauchten bei LinkedIn immer wieder Bugs erst im Produktivsystem auf – manchmal auch erst nach mehreren Tagen oder Wochen. Diese Bugs konnten einigen Ärger verursachen. Den Grund für die Bugs zu finden, war oft nicht einfach und die Entwickler mussten öfter einen Rollback auf eine ältere Version durchführen. Das trieb die Kosten in die Höhe. In vielen Fällen hätten die Bugs früher gefunden werden können, hätten die Entwickler das Deployment unter verschiedenen Failover-Szenarien, über längere Zeiträume und unter echten Lastbedingungen testen können.

Bei bereits existierenden Monitoring Tools wie Availability Monitor for Kafka von Microsoft und auch die Netflix-Variante fehlte den LinkedIn-Entwicklern Modularität und die Möglichkeit anwenderspezifische Libraries und Szenarien zu nutzen. So entstand Kafka Monitor.

Lesen Sie auch: Use Cases für Apache Kafka: „Viele Data-Probleme sind gar nicht so big“

So funktioniert Kafka Monitor

KafkaMonitor-2

Die Beziehungen zwischen Services, Tests und den Kafka-Monitor-Instanzen und wie Kafka Monitor mit dem Kafka-Cluster interagiert (Quelle: https://engineering.linkedin.com/blog/2016/05/open-sourcing-kafka-monitor)

Entwickler können mit Kafka Monitor neue Tests aus wiederverwendbaren Modulen erstellen, um verschiedene Szenarien zu emulieren und Metriken zu sammeln. Kafka-Anwender können diese Szenarien auf einem Test-Cluster oder Produktions-Cluster ausführen und so testen, ob Kafka wie erwartet funktioniert. Eine Kafka-Monitor-Instanz läuft in einem einzelnen Java-Prozess und kann mehrere Test/Services im selben Prozess erzeugen.

Der Sourcecode von Kafka Monitor steht auf GitHub unter einer Apache-2.0-Lizenz zur Verfügung. Zusätzlich zum üblichen Readme gibt es auch ein ausführlicheres Wiki. Für den Start ist ein Standardtest für die Verfügbarkeit, die Ende-zu-Ende-Latenz, die Verlustrate von Nachrichten und die Rate der Nachrichtenduplikate direkt mit dabei. Das Framework braucht mindestens Gradle 2.0. Die Entwickler empfehlen Java 7 zu nutzen, damit zur Laufzeit sowohl Java 7 als auch 8 unterstützt wird.

Aufmacherbild: Franz Kafka bronze statue von Shutterstock / Urheberrecht: J Morc

Geschrieben von
Melanie Feldmann
Melanie Feldmann
Melanie Feldmann ist seit 2015 Redakteurin beim Java Magazin und JAXenter. Sie hat Technikjournalismus an der Hochschule Bonn-Rhein-Sieg studiert. Ihre Themenschwerpunkte sind IoT und Industrie 4.0.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: