Zum Hauptinhalt Zur Navigation

Container-Monitoring: Prometheus 2.0 überwacht effizienter

Ursprünglich von Soundcloud stammt die verteilte Monitoring-Lösung Prometheus, die mittlerweile vor allem für Container genutzt wird. Die aktuelle Version 2.0 reduziert den Fußabdruck der Software, erlaubt Snapshot-Backups der Datenbank und durchforstet riesige Mengen an Zeitreihen effizienter.
/
1 Kommentare News folgen (öffnet im neuen Fenster)
Prometheus 2.0 ist verfügbar. (Bild: CoreOS)
Prometheus 2.0 ist verfügbar. Bild: CoreOS

Die vor allem beim Cloud- und Containereinsatz verwendete Monitoring-Lösung Prometheus steht in Version 2.0 bereit. Prometheus sammelt Daten als Zeitreihen. Die in Version 2.0 enthaltene neue, leistungsfähigere Zeitreihen-Datenbank startete Anfang 2017 als Experiment, die in praktischen Benchmarks gewonnenen Ergebnisse können sich aber sehen lassen: Die Latenzzeiten für Abfragen sind konsistenter und skalieren besser, zugleich geht der Ressourcenverbrauch in realen Produktionsszenarien deutlich zurück.

Zahlen dazu liefert unter anderem das Projekt selbst in einem Blogpost(öffnet im neuen Fenster) von Entwickler Fabian Reinartz, der sie bereit auf dem Open Source Summit in Prag vorstellte. Demnach reduziert sich die CPU-Auslastung gegenüber Version 1.8 um 20 bis 40 Prozent. Prometheus 2.0 braucht 33 bis 50 Prozent weniger Plattenplatz als die Vorgängerversion, und Disk-I/O liegt ohne große Last normalerweise bei weniger als einem Prozent.

Auch das auf Containereinsatz spezialisierte Unternehmen CoreOS beteiligt sich an der Entwicklung von Prometheus(öffnet im neuen Fenster) und sieht die "dramatischste Verbesserung in Prometheus 2.0" in der geringeren Menge an Daten, die die Monitoring-Software pro Sekunde auf die Festplatte schreibt, es seien bis zu zwei Größenordnungen weniger Daten als bisher. Dies erhöhe die Lebensdauer von SSDs und senke die Kosten.

Abgestanden nach fünf Minuten

Nutzer dürfte auch freuen, dass die neue Version das seit Jahren bestehende und recht komplex zu behebende Problem mit der Fünf-Minuten-Staleness löst. Denn erhält Prometheus etwa beim Auswerten eines Instant Vectors fünf Minuten lang keine aktualisierten Datenpunkte, betrachtet es die dazugehörige Zeitreihe als "schal" oder "abgestanden" (englisch: stale). Der Admin weiß dann nicht genau, ob ein Wert tatsächlich konstant ist oder er auf einen veralteten Datenpunkt schaut.

Das führt unter anderem dazu, dass die Warnungen auch dann noch abgehen, wenn ein Problem bereits behoben ist. Prometheus 2.0 verfolgt daher nun auch verschwindende Ziele oder deren Zeitreihen, was nicht nur Abfrage-Artefakte verhindert, sondern auch die Reaktionsfähigkeit der Warnungen verbessert.

Schnappschüsse per API machen

Neu ist außerdem der integrierte Support für Snapshot-Backups der gesamten Datenbank. Dazu muss das Flag "--web.enable-admin-api" gesetzt werden und natürlich anschließend der entsprechende API-Aufruf durchgeführt werden. Der Snapshot landet in einem Verzeichnis mit dem zurückgelieferten Namen und lässt sich dann in einen Archivspeicher hochladen, wobei er kaum zusätzlichen Speicherplatz belegt. Auf Basis der gesicherten Daten lässt sich dann einfach ein neuer Prometheus-Server starten, indem der Admin den letzten Schnappschuss in das Datenverzeichnis des neuen Servers schiebt.

Neue Storage Engine für Milliarden Daten

Überwacht Prometheus in großen Setups Hunderte bis Tausende von Containern, kommen Millionen von Zeitreihen über einen Cluster zusammen, was das kontinuierliche Schreiben zu einer technischen Herausforderung macht. Dank der Container-Orchestrierung Kubernetes entstehen und verschwinden die Container zu allem Ärger auch noch permanent. Das ist gewollt und wird in Zukunft eher zunehmen. Da Prometheus Zeitreihen für jeden einzelnen Container anlegt, fallen über die Zeit Milliarden von Zeitreihen an, auch wenn die Monitoring-Software sie nicht alle verfolgt.

Eine neue Storage Engine von Prometheus verwendet invertierte Indizes und orientiert sich am Vorbild einer Volltextsuche. Sie erlaubt es, Zeitreihen schneller zu durchforsten. Zugleich hilft es, dass ein neues Festplattenformat verwendete Zeitreihendaten besser beieinanderhält und ein Write-ahead-Log für eine bessere Crash-Resistenz sorgt. Neu ist auch, dass die Aufzeichnungs- und Alarmierungsregeln nun im YAML-Format vorliegen, was es erleichtert, die Daten im Konfigurationsmanagement und in Templates zu verwenden.

Admins, die eine Migration erwägen, sollten einen Blick in das Migrationshandbuch werfen. Ausprobieren lässt sich die neue Version über die offiziellen Binaries(öffnet im neuen Fenster) und Container-Images(öffnet im neuen Fenster) .


Relevante Themen