So ermitteln Sie die Anzahl der in Prometheus LevelDB gespeicherten Zeitreihen

9

Ich bin verantwortlich für die Wartung der Prometheus-Server in unserem Unternehmen. Die Metriken werden jedoch von den Teams bereitgestellt.

Gibt es eine Möglichkeit, die Anzahl der in der Prometheus-Datenbank gespeicherten Zeitreihen herauszufinden? Wir verwenden den Standard-LevelDB-Datenspeicher. Ich benötige diese Werte, um herauszufinden, ob ich die lokalen Speichereinstellungen unserer Prometheus-Instanzen anpassen muss.

Danke für Ihre Hilfe.

Tobias Wiesenthal
quelle
Haben Sie es geschafft, eine Lösung für das oben Genannte zu finden? LevelDB wird meines Wissens nur für Indizes verwendet ...
David B.
Leider habe ich noch keine Lösung gefunden. Jeder Hinweis ist willkommen.
Tobias Wiesenthal
Ich verstehe, dass Prometheus die Zeitreihen in einer Datei pro Zeitreihe auf der Festplatte speichert. Der Standort wird durch das Flag angegeben storage.local.path. Hast du das untersucht?
David B.

Antworten:

9

Wie wäre es count({__name__=~".+"})?

Es wird die Anzahl der Zeitreihen in der Datenbank zurückgegeben. Ich habe mit der Anzahl der Metriken verglichen, die derzeit von jedem Ziel durch manuelles Verschrotten angezeigt werden, und es entspricht +/- 10%. Ich denke, der Unterschied ist auf einige Ziele zurückzuführen, die ich in der Vergangenheit hatte, und jetzt sind sie offline.

Zaar Hai
quelle
3

Nach einigen weiteren Recherchen und dank der Kommentare von David.B fand ich eine Lösung, die für mich funktioniert

Um die Anzahl der von Prometheus gespeicherten Zeitreihen zu ermitteln, verwende ich diesen Befehl im storage.local.pathOrdner:
ls -l {{0..9},{a..f}}{{0..9},{a..f}} | grep -E "*.db$" | wc -l

Darüber hinaus wurden in der prometheus-Dokumentation einige Metriken gefunden , die bei der Behandlung von Speicherproblemen / -optimierungen hilfreich sein können.

Dies ist vielleicht nicht der raffinierteste Weg, aber es gab mir die Zahlen, nach denen ich gesucht habe.

Tobias Wiesenthal
quelle
0

Sie können versuchen ({ name = ~ ". +"}) Auf der Prometheus-Konsole, um die gesamte Zeitreihe abzurufen

Prabha
quelle
Ich habe es zuerst versucht. Leider count({name=~".+"})gibt mir eine Nummer, die kleiner ist als die von prometheus_local_storage_memory_series. In meinem Fall ist dies 3k von countund 130k von prometheus_local_storage_memory_series. Ich würde erwarten, dass die Anzahl der Zeitreihen im Speicher gleich oder kleiner als die Gesamtzahl der Zeitreihen ist und nicht umgekehrt. Die Version von oben ( ls -l {{0..9},{a..f}}{{0..9},{a..f}} | grep -E "*.db$" | wc -l) sagt mir, dass ich 527k Zeitreihen habe.
Tobias Wiesenthal