Wir versuchen, Graphite für ein (fast) Echtzeit-Grafik-Web-System zu verwenden. Allerdings können wir Graphit nicht schneller als 1 Sekunde Aktualisierungsraten beschleunigen. Letztlich würden wir Updates wie 100msGraphite Graph - wie schnell können wir die Grafik aktualisieren?
habenAus der Lektüre der FAQ sie es wie Graphit schnell klingen macht, ist - aber das ist entweder sehr irreführend oder ich verstehen mich nicht, wie Graphit
die Zeitinformationen zu beschleunigen für whisper scheint UNIX-Zeitstempel zu verwenden
Wie skalierbar ist Graphit?
Aus einer CPU-Perspektive skaliert Graphite horizontal sowohl auf dem Frontend als auch auf dem Backend, was bedeutet, dass Sie einfach mehr Maschinen zu dem Mix hinzufügen können, um mehr Durchsatz zu erzielen. Es ist auch fehlertolerant in dem Sinne, dass das Verlieren eines Back-End-Computers zu einem minimalen Datenverlust führt (unabhängig davon, welcher Computer im Speicher zwischengespeichert wurde) und das System nicht stört, wenn genügend Kapazität zur Verfügung steht.
Aus einer I/O-Perspektive führt Graphite unter Last viele sehr schnelle I/O-Operationen auf vielen verschiedenen Dateien aus. Dies liegt daran, dass jede unterschiedliche an Graphite gesendete Metrik in ihrer eigenen Datenbankdatei gespeichert wird, ähnlich wie viele Tools (drraw, Cacti, Centreon usw.) auf RRD-Arbeit aufbauen. Tatsächlich verwendete Graphite ursprünglich RRD für die Speicherung, bis grundlegende Einschränkungen auftraten, die eine neue Speicher-Engine erforderten.
Hohes Volumen (ein paar tausend verschiedene Metriken, die minutiös aktualisieren) erfordert ziemlich viel ein gutes RAID-Array. Das Backend von Graphite speichert eingehende Daten im Cache, wenn die Festplatten nicht mit der großen Anzahl kleiner Schreiboperationen mithalten können (jeder Datenpunkt ist nur ein paar Byte groß, aber die meisten Festplatten können nicht mehr als ein paar tausend E/A-Operationen pro Sekunde ausführen) sie sind winzig). Wenn dies der Fall ist, ermöglicht die Datenbank-Engine von Graphite, Flüstern, Kohlenstoff mehrere Datenpunkte gleichzeitig zu schreiben, wodurch der Gesamtdurchsatz nur um den Preis erhöht wird, dass überschüssige Daten im Speicher zwischengespeichert werden, bis sie geschrieben werden können.
Wie sind die Graphen in Echtzeit?
Sehr. Selbst unter hoher Last, wenn die Anzahl der Metriken in jedem Zeitintervall viel höher ist als die Rate, mit der Ihr Speichersystem E/A-Operationen und viele Datenpunkte in der Speicher-Pipeline durchführen kann (siehe vorherige Frage zur Erläuterung)), Graphite zeichnet immer noch Echtzeitgraphen. Der Trick besteht darin, dass, wenn die Graphite-Webanwendung eine Anforderung zum Zeichnen eines Graphen empfängt, sie gleichzeitig Daten von der Platte sowie vom Vorspeichercache (der bei mehreren Backendservern verteilt werden kann) abruft und die beiden Quellen von Daten, um ein Echtzeitdiagramm zu erstellen.
Auch zeigen sie nur wenige Sekunden und keine gebrochenen Punkte hier: http://graphite.readthedocs.org/en/latest/config-carbon.html und from and until must be a time specification conforming to the AT-STYLE time specification described
hier: http://oss.oetiker.ch/rrdtool/doc/rrdfetch.en.html. http://graphite.wikidot.com/url-api-reference
Also was ist das? Ist Graphit schnell? oder ist es einfach schnell große Datensätze zu verarbeiten - wir suchen nach einem einfach zu bedienenden Web-Empfänger von Paketdaten zur visuellen Darstellung - Graphit schien eine großartige Lösung zu sein, aber jetzt, da wir alles konfiguriert und ausgeführt haben, schätze ich, dass wir nur ein verschwendet haben Viel Zeit
Danke!
Gibt es einen Weg für mich, etwas von der Mechanik von Graphit zu ändern, um höhere Präzision zu ermöglichen? (Denken Sie an Oszilloskop-Anwendungen) Was Sie gesagt haben, ist sinnvoll für viele Anwendungen - aber wir versuchen, glatte Grafik Informationen in Echtzeit angezeigt werden - 1s Updates werden sehr klobig sein - die Daten, die wir an Graphit senden wird bereits verarbeitet und ist durchschnittliche Daten – morty346
Nr. Graphit - [Flüstern] (https://github.com/graphite-project/whisper) db- wurde entwickelt, um Speicher-Footprint niedrig und konstant im Laufe der Zeit (wie [RRD] (http: // en.wikipedia.org/wiki/RRDtool)). Die Zeitreihendaten müssen in einen der definierten Zeitschritte (Sekunde, Minute, Stunde) eingegeben werden. Es klingt, als müssten Sie ein anderes Werkzeug in Betracht ziehen. –