by Sally Bo Hatter
Share
by Sally Bo Hatter
Letztes Jahr haben wir ein neues Projekt begonnen. Wir wurden beauftragt, Dashboards zu erstellen, um die Key Performance Indicators (KPIs) der Datenplattform unseres Kunden und verschiedener Datenquellen darzustellen. Wir waren alle begeistert, dieses neue Projekt zu beginnen. Denn wer wäre nicht begeistert, fantastische und ausgefallene Dashboards zu erstellen?
Das Tool für die Erstellung der Dashboards stand noch nicht fest. Wir wurden gebeten, ein geeignetes Tool auszuwählen, indem wir die Vor- und Nachteile der drei beliebten Open-Source-Tools Apache Superset, Grafana und Kibana abwägten.
Der Vergleich
Hier ist die Zusammenfassung dessen, was diese Tools bieten:
Apache Superset | Grafana | Kibana | |
---|---|---|---|
Fokus | Entwickelt mit starkem Fokus auf Business Intelligence und geeignet für die Datenanalyse, die Erstellung von Dashboards und die Erstellung von Berichten | Entwickelt mit dem Hauptaugenmerk auf Überwachung, Beobachtbarkeit und Visualisierung von Zeitreihendaten | Entwickelt als Teil von Elastic Stack mit Schwerpunkt auf der Analyse und Visualisierung von Protokoll- und Ereignisdaten |
Datenquellen | Unterstützt eine Vielzahl von Datenquellen mit einer großen Flexibilität bei der Anbindung an verschiedene Datenplattformen wie Snowflake, Amazon Redshift, Databricks und andere | Unterstützt eine Vielzahl von Datenquellen, darunter Prometheus, InfluxDB, Graphite, MySQL und andere | Wird in erster Linie nur mit Elasticsearch verwendet |
Alarmierung | Alarmierungsfunktionen sind nicht ausgereift | Robuste Alarmierungsfunktionen | Begrenzte native Alarmierungsfunktionen |
Kostenanpassung | Bietet ein hohes Maß an Anpassungs- und Erweiterungsmöglichkeiten für die Erstellung benutzerdefinierter Diagramme und Dashboards mithilfe von Python-Bibliotheken | Umfangreiche Anpassungsmöglichkeiten durch ein reichhaltiges Ökosystem von Plugins und von der Community erstellten Dashboards | Die Anpassungsoptionen sind eher auf die Visualisierung von Protokoll- und Ereignisdaten ausgerichtet |
Community Support | Hat eine aktive, aber noch wachsende Community | Hat eine große und aktive Community mit einer bedeutenden Community-Unterstützung | Die Unterstützung der Community ist im Vergleich zu Grafana begrenzt |
Die Erstuntersuchung
Wir haben zunächst Apache Superset und Grafana verglichen, die aufgrund ihrer Popularität im Bereich Dashboarding und Visualisierung, ihrer Fähigkeit, eine Vielzahl von Datenquellen anzuschließen, und natürlich aufgrund unserer früheren Erfahrungen mit diesen Tools unsere natürliche Wahl waren. Obwohl diese beiden Tools hervorragend für die Datenvisualisierung und -analyse geeignet sind, haben sie ihre eigenen Stärken und wir mussten herausfinden, welches Tool für unseren Anwendungsfall geeignet ist. Als wir die beiden Tools untersuchten, stellten wir fest, dass Grafana für unseren Anwendungsfall eine geeignete Option wäre, da wir an der Visualisierung von Zeitreihendaten und aggregierten Metriken interessiert waren und nicht an den Business Intelligence-Funktionen, die die Stärke von Apache Superset sind. Da wir in Zukunft neben dem Dashboarding auch ein Alerting-System implementieren wollten, haben auch die robusten Alerting-Funktionen von Grafana dazu beigetragen, dass wir uns für Grafana und nicht für Apache Superset entschieden haben. Die Entscheidung für Grafana war so gut wie bestätigt.
Die anschließende Untersuchung
Obwohl Kibana zunächst nicht als eine der Möglichkeiten in Betracht gezogen wurde, wurde es später zu einer, da es bereits im Projekt verwendet wurde und wir sehen wollten, ob wir es nutzen können, anstatt ein neues Tool einzuführen. Wir engagierten Kibana und begannen, die Unterschiede zwischen Grafana und Kibana zu vergleichen. Selbst nach einer gründlichen Untersuchung, bei der wir unbewusst zu Kibana tendierten, kamen wir zu dem Schluss, dass Kibana für die Visualisierung von Zeitreihendaten und Metriken aufgrund seiner Einschränkungen in Bezug auf Anpassung und Datenaggregation nicht geeignet ist, insbesondere wenn wir Grafana haben, das als das De-facto-Visualisierungstool für Zeitreihendaten und Metriken gilt. Ganz zu schweigen davon, dass Sie nur mit Elasticsearch arbeiten können, anstatt eine dedizierte Zeitreihendatenbank oder eine beliebige relationale Datenbank zu verwenden und die Möglichkeit zu verlieren, Abfragen in einer vertrauten SQL- oder SQL-ähnlichen Sprache zu schreiben.
Der ultimative Kompromiss
Obwohl alle unsere Nachforschungen auf Grafana hindeuteten, entschieden wir uns für Kibana, da es im Projekt bereits in großem Umfang für die Überwachung/Analyse von Protokollen verwendet wurde und wir es nutzen wollten, anstatt ein neues Tool einzuführen.
Die Rezension
Wir haben es geschafft, die Dashboards mit Zeitreihendaten und Metrikvisualisierung ziemlich nahtlos zu erstellen, abgesehen von einigen Komplexitäten an einigen Stellen bei der Anpassung mit Vega und Painless Script für die Datenaggregation. Obwohl es sich nicht als großer Schmerzpunkt herausstellte, war die Verwendung von Painless Script für die Datenaggregation etwas komplex und nicht so dynamisch/flexibel, wie es gewesen wäre, wenn wir Grafana mit SQL oder SQL-ähnlichen Sprachen zur Abfrage einer Zeitreihe oder relationalen Datenbank verwendet hätten. Aber um die wichtigste Frage zu beantworten: Hat sich der Kompromiss letztendlich gelohnt? Auf jeden Fall. Die Entscheidung für Kibana hat sich als entscheidend für die Beschleunigung des Entwicklungsprozesses erwiesen und dazu beigetragen, dass wir früher als erwartet die gewünschten Ergebnisse erzielen konnten, da wir ein Tool verwendet haben, mit dem das Team bereits vertraut ist. Außerdem hatten wir einen Vorsprung, da wir ein Tool gewählt haben, das bereits eingesetzt wird und voll funktionsfähig ist, und wir mussten keinen zusätzlichen Aufwand für die Bereitstellung und Integration eines neuen Tools in die bestehende Architektur betreiben. Nicht zu vergessen ist auch der geringere Wartungsaufwand, der dadurch entsteht, dass kein neues Tool eingeführt werden muss.
Die Takeaways
- Erstens hat sich Kibana als ein Tool erwiesen, das nicht nur für die Überwachung/Analyse von Protokollen/Ereignissen gedacht ist, sondern auch eine brauchbare Option für die Visualisierung von Zeitreihendaten und Metriken darstellt, auch wenn wir für komplexere und benutzerdefinierte Lösungen vielleicht Grafana wählen müssen.
- Zweitens sollten wir eine Lösung wählen, die für uns am besten geeignet ist, indem wir auch die Auswirkungen auf das gesamte System bewerten, anstatt nur das ausgefeilteste Tool oder das Tool mit den „coolen“ Funktionen zu wählen, unabhängig davon, ob wir sie brauchen oder nicht. Es gibt mehr zu bedenken als nur die Funktionen, z. B. die anfänglichen Kosten, die zukünftige Wartung, die Schulung der Ressourcen usw.
Der Fun Fact
Die Erstellung all dieser ausgefallenen Dashboards war nicht einfach nur Drag & Drop oder das Schreiben einfacher Skripte. Es war viel komplizierter, als wir als Backend-Entwickler erwartet hatten .