Was ist der Unterschied zwischen OpenTSDB und Graphite?

28

Soweit ich das beurteilen kann, sind hier die Hauptunterschiede:

  1. OpenTSDB verschlechtert die Daten nicht im Laufe der Zeit, im Gegensatz zu Graphite, bei dem die Größe der Datenbank vorbestimmt ist.
  2. OpenTSDB kann Metriken pro Sekunde speichern, im Gegensatz zu Graphite mit Minutenintervallen (Ich bin mir nicht sicher, dass Graphite-Dokumente Aufbewahrungsrichtlinien anzeigen, in denen Metriken jede Minute gespeichert werden, aber ich weiß nicht, ob dies die minimale Zeiteinheit ist, die wir verwenden kann mit spielen)

Ich möchte eine fundierte Entscheidung darüber treffen, welches Tool zum Speichern von Metriken verwendet werden soll. Habe ich weitere Unterschiede in diesen beiden Systemen verpasst? Wie performant / skalierbar sind sie?

Bonusfrage: Gibt es ein anderes Zeitreihensystem, das ich mir ansehen sollte?

vedang
quelle

Antworten:

46

Haftungsausschluss: Ich habe OpenTSDB geschrieben .

Ich würde sagen, dass der größte Vorteil von Graphite die überlegenen Grafikfunktionen zu sein scheinen . Es bietet mehr Diagrammtypen und -funktionen. Die Komplexität der Bereitstellung ist bei Graphite wahrscheinlich auch etwas geringer, da es sich nicht um ein verteiltes System handelt und daher weniger bewegliche Teile enthält.

OpenTSDB hingegen ist in der Lage, eine wesentlich größere Menge feinkörniger Datenpunkte zu speichern. Dies geht zu Lasten der Bereitstellung von HBase , was ehrlich gesagt keine so große Sache ist. Wenn Sie sekundengenaue Echtzeitdaten mit >> 10k neuen Datenpunkten / s erhalten möchten, ist OpenTSDB genau das Richtige für Sie.

Einige Informationen zu unserer aktuellen Skala bei StumbleUpon (diese Zahlen verdoppeln sich normalerweise alle 2-3 Monate):

  • Über 1B neue Datenpunkte pro Tag (= durchschnittlich 12k / s).
  • Hunderte Milliarden Datenpunkte werden gespeichert.
  • Weniger als 2 TB belegter Festplattenspeicher (vor der 3-fachen Replikation durch HDFS).
  • Leseabfragen können im Allgemeinen mehr als 500.000 Datenpunkte pro Sekunde abrufen, mischen und zeichnen.
Tsuna
quelle
3
Das Graphitintervall ist konfigurierbar. Normalerweise verwende ich Überwachungsperioden von 10 Sekunden. Und die Grafiken sind wirklich süß. Ansonsten denke ich, Tsunas Antwort ist knallhart
Travis Bear
19

Benutzeroberfläche

Graphite verfügt über einige hervorragende Grafikwerkzeuge. Die Standard-Weboberfläche ist hässlich (obwohl funktionsfähig), aber Sie haben dann eine Fülle großartiger Grafik- und Dashboard-Optionen.

Einige Beispiele:

  • Grafana- Dashboard mit dynamischen (zoombaren) Diagrammen

Grafana Dashboard Beispiel

Beispiel für ein Diagrammexplorer-Dashboard

cubism.js Diagrammbeispiel

Schauen Sie hier oder hier , um viele mehr zu finden.

OpenTSDB auf der anderen Seite befindet sich noch im Gnuplot-Stadium: OpenTSDB-Weboberfläche

Installieren

In der Praxis ist Graphite tatsächlich viel schwieriger einzurichten als HBase + OpenTSDB. OpenTSDB verfügt über eine umfassende Dokumentation und einige einfache Schritte. Dies sind die Befehle, um Graphite zu installieren. Noch schwieriger wird es, wenn Sie aus dem Quellcode erstellen.

Vorstellungen

OpenTSDB verschlechtert die Daten nicht im Laufe der Zeit, im Gegensatz zu Graphite, bei dem die Größe der Datenbank vorbestimmt ist.

Wahr. Auch Graphite verwendet ein Dateiformat ähnlich wie RRD. In der Praxis bedeutet dies, dass ein einzelner Datenpunkt so viel Speicherplatz beansprucht wie die Vollzeitserie, da dieser Speicherplatz vorab zugewiesen wird. Dies bedeutet auch, dass das Zeichnen eines leeren Zeitintervalls so lange dauert, als ob Daten vorhanden wären (eine alternative Speicher-Engine, Ceres , ist in Arbeit, aber ich habe es noch nicht ausprobiert).

Wie Tsuna bereits sagte, können Sie mit OpenTSDB erheblich mehr Datenpunkte speichern und dabei die Leistung von Hadoops HDFS nutzen. Graphit hingegen, dessen Architektur in diesem AOSA-Kapitel beschrieben wird , ist eine adhocere Lösung.

OpenTSDB kann Metriken pro Sekunde speichern, im Gegensatz zu Graphit mit Minutenintervallen.

Nein, beide können sich sekundengenau abmelden.

MasterScrat
quelle
1
Es sieht so aus, als ob sich opentsdb hervorragend zum Speichern von Daten eignet und Graphit am besten zum Zeichnen. Ist es möglich, Graphit für das Backend auf opentsdb zu setzen? Ich wäre gespannt, ob sich jemand von Graphit aus mit opentsdb verbinden könnte.
user1471980
4
Beachten Sie, dass Grafana auch OpenTSDB unterstützt und es andere attraktive Frontends für OpenTSDB gibt, wie z. B. metrilyx .
Wilfred Hughes
@WilfredHughes sagt, dass Grafana OpenTSDB unterstützt. Beachten Sie auch, dass OpenTSDB millisekundengenau speichern kann.
Nicholas