Alles in Einem

Thanos: Hochverfügbares und skalierbares Prometheus

Dominik Mohilo

© Shutterstock / Fuga (modifiziert)

Das Komponentenpaket Thanos wurde federführend von Improbable entwickelt, um das Monitoring-System Prometheus zu verbessern. Insbesondere die Hochverfügbarkeit und die Skalierbarkeit sind zwar generell kein Problem für Prometheus, Thanos allerdings soll allerdings in diesen Bereichen eine gewisse Reibungslosigkeit garantieren.

Nein, mit Marvels Superbösewicht hat das Projekt Thanos nur den Namen gemeinsam – auch wenn die Entwickler sich den Scherz natürlich nicht nehmen ließen, darauf hinzuweisen, dass Thanos nicht die Hälfte aller gesammelten Metrik-Daten löscht. Und damit sind wir auch schon beim Kernthema: Metrik-Daten bzw. deren Sammlung und Verwaltung. Anstelle die gesammelten Daten nämlich zu löschen, dient Thanos unter anderem dem einfacheren Backup und Archievierung gesammelter Daten.

Prometheus in hochverfügbar

So wie Kubernetes in der Welt der Container einen wahren Siegeszug hinter sich hat, festigt im Bereich Monitoring das System Prometheus immer mehr seinen Stand als de-facto-Standard. In der modernen Softwareentwicklung kann es allerdings wichtig sein, ein hochverfügbares und vor allem skalierbares Monitoring-System zu haben – und hier kommt Thanos ins Spiel. Denn: Es ist nicht immer ganz einfach, Prometheus hochverfügbar und skalierbar zu machen.

Thanos stellt eine Reihe von Komponenten zur Verfügung, die sich in ein hochverfügbares Metriksystem mit unbegrenzten Speicherkapazitäten zusammenbauen lassen. Dieses kann anschließend nahtlos in bestehende Projekte integriert werden, in denen Prometheus verwendet wird. Als Storage-Format wird jenes von Prometheus 2.0 verwendet, das eine kosteneffiziente Speicherung historischer Metrik-Daten in einem beliebigen Objektspeicher erlaubt. Ein weiterer Vorteil des Formats sind die generell flotten Query-Latenzen, die damit durchführbar sind.

Durch die Funktionalität mehrere Prometheus-Instanzen gleichzeitig abzufragen und die gleichen Metriken von mehreren Instanzen zu deduplizieren, hilft Entwicklern dabei, ein hochverfügbares Prometheus-System aufzusetzen. Mehrere Relikas des gleichen Prometheus Setups können so ausgeführt werden, ohne eine Duplizierung der Metrik-Daten befürchten zu müssen.

Thanos Query / Quelle: Joseph Irivng via Medium

Interessant ist im Zusammenhang der Hochverfügbarkeit auch die Sidecar-Komponente von Thanos: Das Sidecar wird quasi an jeden Prometheus-Container angehängt, die dann einen Cluster bilden. Anstatt nun Querys an jede einzelne Prometheus-Instanz zu stellen, wird einfach die Query-Komponente von Thanos angesprochen.

Auf einen Blick

Eine weitere Problematik, die Thanos adressiert, ist die Zusammenführung der Metrik-Daten an einem zentralen Punkt. Bislang war dies zwar schon möglich, indem man eine spezielle Prometheus-Instanz erschuf, für den alle Metrik-Daten dupliziert zusammengetragen wurden. Die Query-Komponente von Thanos kann genutzt werden, um dies deutlich eleganter zu lösen:

Hierzu ist es wichtig zu wissen, dass ein Thanos Query Node einen anderen Query Node als Datenquelle nutzen kann. Macht man nun den gRPC-Endpunkt jedes Thanos Query Nodes verfügbar, kann ein Thanos Query erstellt werden, mit dem man alle Metriken aller Cluster abfragen und erhalten kann.

Weitere Informationen zu Projekt Thanos gibt es im Artikel von Joseph Irving auf Medium und auf GitHub.

Geschrieben von
Dominik Mohilo
Dominik Mohilo
Dominik Mohilo studierte Germanistik und Soziologie an der Goethe-Universität in Frankfurt. Seit 2015 ist er Redakteur bei S&S-Media.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: