Package: python3-whisper Version: 1.1.4-2 The whisper-resize script assumes Python 2, despite being in a python3- package:
root@monitor:/var/lib/graphite/whisper/snmp# whisper-resize --nobackup --aggregate ./escalabra/snmp/if_octets-Slot__0_Port__4_Gigabit_-_Level/rx.wsp 10s:1d 1m:7d 10m:1y Retrieving all data from the archives Creating new whisper database: ./escalabra/snmp/if_octets-Slot__0_Port__4_Gigabit_-_Level/rx.wsp.tmp Created: ./escalabra/snmp/if_octets-Slot__0_Port__4_Gigabit_-_Level/rx.wsp.tmp (855412 bytes) Migrating data with aggregation... oldtimestamps: <map object at 0x7fc7a06259e8> (1568833216,1568919626,10) timepoints_to_update: range(1568833216, 1568919626, 10) Traceback (most recent call last): File "/usr/bin/whisper-resize", line 147, in <module> lefti = bisect.bisect_left(oldtimestamps, tinterval[0]) TypeError: object of type 'map' has no len() A patch for these issues is attached. ttfn/rjk
--- whisper-resize 2018-12-12 11:42:45.000000000 +0000 +++ whisper-resize.fixed 2019-09-19 20:06:27.867197176 +0100 @@ -110,7 +110,7 @@ for archive in old_archives: # Loading all datapoints into memory for fast querying timeinfo, values = archive['data'] - new_datapoints = zip(range(*timeinfo), values) + new_datapoints = list(zip(range(*timeinfo), values)) if all_datapoints: last_timestamp = all_datapoints[-1][0] slice_end = 0 @@ -122,8 +122,8 @@ else: all_datapoints += new_datapoints - oldtimestamps = map(lambda p: p[0], all_datapoints) - oldvalues = map(lambda p: p[1], all_datapoints) + oldtimestamps = list(map(lambda p: p[0], all_datapoints)) + oldvalues = list(map(lambda p: p[1], all_datapoints)) print("oldtimestamps: %s" % oldtimestamps) # Simply cleaning up some used memory @@ -148,7 +148,7 @@ righti = bisect.bisect_left(oldtimestamps, tinterval[1], lo=lefti) newvalues = oldvalues[lefti:righti] if newvalues: - non_none = filter(lambda x: x is not None, newvalues) + non_none = list(filter(lambda x: x is not None, newvalues)) if 1.0 * len(non_none) / len(newvalues) >= xff: newdatapoints.append([tinterval[0], whisper.aggregate(aggregationMethod,