Überwachung von großen Datenpipelines

ShareThis wächst rasant! In den letzten 4 Jahren, in denen ich hier gearbeitet habe, sind wir von einer Ein-Raum-Firma zu einer Mehr-Raum-Firma gewachsen. Wir haben auch angefangen, all die typischen Start-up-Vergünstigungen zu bekommen: kostenloses Essen, ein schickes Büro, Betriebsausflüge, etc.

Lustige Dinge passieren, wenn wir Wert schaffen, aber es entstehen Kosten für das Engineering in Bezug auf die Komplexität. Wir generieren jetzt Terabyte an Daten pro Tag in Echtzeit. Wir hoffen auch, in den nächsten ein bis zwei Jahren noch mehr Daten aufzunehmen; eine Verdoppelung oder Verdreifachung unseres Datenflusses. Es ist erfreulich, wenn ich mit Kollegen spreche, um ihnen zu sagen, was wir tun, und sie antworten mit "wow".

Das Problem ist jedoch nicht die Aufnahme - Tools wie Kafka, Cassandra, Aerospike, BigQuery, etc. machen die Skalierung zu einem einfacheren Problem als vor 4 Jahren. Die Schwierigkeit besteht darin, dass jemand fragt: "Woher weißt du, dass die Daten darin richtig sind" oder "Woher weißt du, dass alle Daten vorhanden sind"?

"Es ist einfach so." - Nicht gut genug.

Um uns bei der Beantwortung solcher Fragen zu helfen, haben wir die Anzahl der ziemlich kostenlosen Überwachungen durch alle Datenpipelines verdoppelt. Glücklicherweise basiert unser Code auf einem gemeinsamen Framework, so dass, wenn wir die Überwachung zu einer Bibliothek hinzufügen, sie dynamisch zu allen Anwendungen hinzugefügt wird, die diese Bibliothek verwenden. Ziemlich cool.

Vielleicht hilft ein kleiner Zusammenbruch der Technologie denen, die dies in Zukunft versuchen zu tun:

Graphit: Graphite ist eine "eine Django-basierte Webanwendung, die Graphen und Dashboards rendert". Es baut auf zwei weiteren Projekten auf, Carbon und Whisper (beide Projekte sind Teil von Graphit). Carbon fungiert als Aggregations- und Cache-Layer, was die Benutzeroberfläche reaktionsschnell macht. Whisper ist eine "Datenbank fester Größe, ähnlich wie RRD (Round-Robin-Datenbank) im Design und Zweck. Es bietet eine schnelle und zuverlässige Speicherung von numerischen Daten über die Zeit. Whisper ermöglicht eine höhere Auflösung (Sekunden pro Punkt) der aktuellen Daten, um sie in niedrigere Auflösungen zu zerlegen und so historische Daten langfristig zu speichern."

Codahale: Die Bibliothek von Codahale hat tatsächlich Anschlüsse für eine Vielzahl von verschiedenen Diensten (wie Ganglia). Für unsere Zwecke verwenden wir die Java Graphite Connectors und wir sind startklar. Die Metrikenobjekte können dynamisch erstellt werden und ermöglichen es Ihnen, grundlegende Statistiken, Histogramme und Timer zu protokollieren. Wir haben die Bibliothek so eingestellt, dass sie sich pro Server und Minute anmeldet, so dass die Anrufe gestapelt werden und der Traffic gering bleibt.

Seyren: Wir verwenden eine modifizierte Version von dieses Dockerprojekt intern mit unseren innen gebündelten Komponenten. Wir zeigen es auf Graphit und Schlupf mit Hilfe von Systemumgebungsvariablen. Sobald wir in der Benutzeroberfläche sind, erstellen wir Checks mit Graphitmetriken (oft unter Verwendung einiger der gut dokumentierten Funktionen), um auf unseren Slack-Kanal aufmerksam zu machen.

Ich hoffe, das hilft! Fröhliches Hacken ?

Über ShareThis

ShareThis erschließt seit 2007 die Macht des globalen digitalen Verhaltens durch die Synthese von Social Share-, Interessen- und Absichtsdaten. Auf der Grundlage des Verbraucherverhaltens auf mehr als drei Millionen globalen Domains beobachtet ShareThis Echtzeit-Aktionen von echten Menschen auf echten digitalen Zielen.

Abonnieren Sie unseren Newsletter

Erhalten Sie die neuesten Nachrichten, Tipps und Updates

Abonnieren

Verwandte Inhalte