Suche
Hot Backups are coming!

Prometheus 2.0 hat neuen Storage Layer an Bord

Dominik Mohilo

© Shutterstock.com / Tithi Luadthong

Manche Änderungen am Tooling sind so gravierend, dass ein neues Major-Release für die saubere Umsetzung nötig ist. So ist es auch mit dem neuen Storage Layer des Monitoring-Tools Prometheus. Wir haben uns angesehen, welche Änderungen auf die Nutzer zukommen und auf was sie in Zukunft verzichten müssen.

Fast ein Jahr ist ins Land gezogen, seit Prometheus in Version 1.0 erschien (JAXenter berichtete). Das Open-Source-Tool für das Monitoring bietet Nutzern zahlreiche Features, die gerade in Verbindung mit Containern wichtig sind, um den Überblick zu behalten. Unter anderem hat Prometheus ein präzises Alerting, ein effizientes Storage-System und für die Visualisierung der sogenannten Time Series wird Grafana unterstützt.

In Time Series oder Zeitreihen werden sämtliche Daten gespeichert, die Prometheus sammelt. Diese Streams von Werten haben Zeitstempel und gehören jeweils zur gleichen Metrik und dem gleichen Set ausgezeichneter Dimensionen. Als Ergebnis von Abfragen kann Prometheus zudem temporär abgeleitete Zeitreihenanalysen erstellen.

Prometheus 2.0 – Sneak Peak

Eine wichtige Änderung für alle, die Dashboards benutzen, ist die native Unterstützung für Grafana. Hierdurch wurde das hauseigene Tool PromDash bereits im Vorfeld zur neuen Version abgelöst. Im April gewährte Fabian Reinartz schließlich einen ersten Blick auf die neuen Features für Prometheus 2.0: Insbesondere die Ausarbeitung eines neuen Storage-Konzepts hat in den letzten Monaten die Arbeit der Entwickler von Prometheus ausgemacht und dieses wird auch als Grund genannt, eine neue Major-Version zu veröffentlichen.

Grund für die Überarbeitung sind offenbar Performance-Probleme im Storage Layer, die mit der wachsenden Dynamik von Technologien wie Kubernetes aufgekommen sind. Mit dem Update sollen diese Bottlenecks in Sachen Performanz behoben und die Performance insgesamt verbessert werden. Auch für Features wie Hot Backups wird durch diese Überarbeitung der Weg geebnet. In Prometheus 2.0 wird trotz allem die Sample Compression für das neue Storage Layer Design übernommen, deren Kompressionsschema nach wie vor sehr gut arbeitet. Samples aus der gleichen Serie können damit von 16 Bytes auf ca. 1,37 Bytes komprimiert werden.

Neu ist hingegen das sogenannte Time Sharding. Für den überarbeiteten Storage Layer von Prometheus werden die Daten in Blöcken gespeichert, die jeweils alle Zeitreihen einer festgelegten Zeitspanne enthalten und als eigenständige Datenbanken fungieren. Neben der Tatsache, dass so Blocks einer gewissen Zeitspanne einzeln analysiert werden können, wird es durch diese Änderung auch leichter, veraltete Daten zu löschen. Sobald der gesamte Inhalt eines Blockes eine festgelegte Zeitgrenze überschreitet, kann er ganz einfach entfernt werden.

Das neue Time Sharding / Quelle: Core OS Blog

Auch ein neues Index-Konzept wird Prometheus 2.0 beinhalten. Da ein Spalten-basierter Index wie bei gängigen SQL-Datenbanken nicht nutzbar ist, wurde sich großzügig bei Volltextsuchen bedient. Prometheus‘ Storage Layer wird also das Konzept eines invertierten Indexes nutzen, bei dem Dokumente je nach den enthaltenen Worten gefunden werden.

Die Zeitreihe requests_total{path="/status", method="GET", instance="10.0.0.1:80"} beispielsweise stellt für den Index ein Dokument dar, das folgende Worte enthält:

  1. __name__="requests_total"
  2. path="/status"
  3. method="GET"
  4. instance="10.0.0.1:80"

Noch ist nicht wirklich abzusehen, wann Prometheus 2.0 veröffentlicht wird, spannende neue Features zeichnen sich aber sehr deutlich am Horizont ab. Wer gerne bereits heute mit Prometheus 2.0 bzw. dem neuen Storage Layer experimentieren möchte, der kann sich das dritte Alpha-Release von GitHub herunterladen.

Aber Vorsicht! Die aktuellen Alpha-Versionen von Prometheus 2.0 arbeiten nicht mit alten Speicherdaten zusammen und sollten keinesfalls in der Produktion eingesetzt werden.

Weitere Informationen zu Prometheus 2.0 gibt es einerseits in Fabian Reinartz‘ Blogpost auf der Homepage von Prometheus, andererseits in seinem Artikel auf dem Core OS Blog. Interessant in dem Kontext ist auch sein Artikel „Writing a Time Series Database from Scratch“ auf seinem eigenen Blog.

Verwandte Themen:

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.