Allerdings streikt rrd2whisper, egal welches rrd file ich konvertieren will:
Code: Alles auswählen
$ rrd2whisper collectd/foobaz_host/memory/memory-free.rrd
Traceback (most recent call last):
File "/usr/bin/rrd2whisper", line 86, in <module>
rra_info['xff'] = rrd_info['rra[%d].xff' % i]
~~~~~~~~^^^^^^^^^^^^^^^^^^^
KeyError: 'rra[0].xff'
Also hab ich rrd2whisper gepatched, damit es diesen Fall erkennt:
Code: Alles auswählen
$ diff /usr/bin/rrd2whisper ./rrd2whisper
69a70
> xFilesFactor = options.xFilesFactor
86c87,91
< rra_info['xff'] = rrd_info['rra[%d].xff' % i]
---
> if f'rra[{i:d}].xff' not in rrd_info:
> if not xFilesFactor:
> raise SystemExit("[ERROR] XFF is not present and --xFilesFactor is not used!")
> else:
> rra_info['xff'] = rrd_info['rra[%d].xff' % i]
107d111
< xFilesFactor = options.xFilesFactor
Code: Alles auswählen
[ERROR] Higher precision archives' precision must evenly divide all lower precision archives' precision (archive1: 70, archive2: 500)
Jetzt ist die Frage: Kann ich die rrd files nachträglich so bearbeiten, dass die RRAs dort den Anforderungen von whisper entsprechen?
Also es gibt rrdresize (https://manpages.debian.org/bookworm/rr ... .1.en.html) nur bin ich mir nicht ganz sicher wie das anzuwenden ist, vielleicht auch weil mir die Terminologie von RRD nicht ganz klar ist.
Ich hab hier zB ein RRD file mit folgenden Einstellungen:
Code: Alles auswählen
rrdtool info load.rrd | grep AVERAGE -A 4 | grep -E '(rows|pdp_per)'
rra[0].rows = 1200
rra[0].pdp_per_row = 1
rra[3].rows = 1235
rra[3].pdp_per_row = 7
rra[6].rows = 1210
rra[6].pdp_per_row = 50
rra[9].rows = 1202
rra[9].pdp_per_row = 223
rra[12].rows = 1201
rra[12].pdp_per_row = 2635
Sehe ich das richtig, dass die Auflösung immer pdp_per_row*step ist und die speicherdauer rows*step*pdp_per_row? Also In whisper terminologie steht dann dort 10s:12000s,70s:85450s,... Wenn ich's richtig gerechnet habe sind das erst genau 200min und dann circa 24h, 7d, 31d und 366.25d.
Heißt, um die Daten konvertiert zu bekommen, muss nun die jeweils pdp_per_row so angepasst werden, dass es jeweils ein Vielfaches ist? Nun ist aber das Problem, dass rrdresize eben nicht pdp_per_row anpasst sondern die Reihen!
Die Frage wurde auf der Mailingliste vor einiger Zeit mal gestellt: https://rrd-users.oetiker.narkive.com/L ... dp-per-row
Offenbar nicht ganz trivial und das stimmt leider:
Ich vermute mal, dass in den 15 Jahren auch kein Tool entwickelt wurde, das sowas automatisch macht?It took me half an hour to write this message, and it may still not be enough for you to understand.
Oder gibt es eine andere Möglichkeit die Daten zu konvertieren?