whisper-calculator.py: Calculates the size of the whisper storage for the given retention (in frequency:history format)
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
def archive_to_bytes(archive): | |
def to_seconds(s): | |
SECONDS_IN_A = { | |
's': 1, | |
'm': 1 * 60, | |
'h': 1 * 60 * 60, | |
'd': 1 * 60 * 60 * 24, | |
'y': 1 * 60 * 60 * 24 * 365, | |
} | |
return int(s[:-1]) * SECONDS_IN_A[s[-1]] | |
archive = [map(to_seconds, point.split(':')) | |
for point in args.archive.split(',')] | |
SIZE_METADATA = 2 * 4 + 4 + 4 # 16 [!2LfL] | |
SIZE_ARCHIVE_INFO = 3 * 4 # 12 [!3L]+ | |
SIZE_POINT = 4 + 8 # 12 [!Ld]+ | |
size = 0 | |
for resolution, retention in archive: | |
size += SIZE_ARCHIVE_INFO + SIZE_POINT * retention/resolution | |
if size: | |
size += SIZE_METADATA | |
return size | |
if __name__ == '__main__': | |
import argparse | |
parser = argparse.ArgumentParser( | |
description="Calculates the size of the whisper storage for the given \ | |
archive (in resolution:retention format, e.g. 1m:24h,5m:3m)" | |
) | |
parser.add_argument( | |
'archive', | |
help="Archive in storage-schemas.conf format (resolution:retention)" | |
) | |
args = parser.parse_args() | |
print "{} >> {} bytes".format(args.archive, archive_to_bytes(args.archive)) |
This comment has been minimized.
This comment has been minimized.
arnaudmm
commented
Aug 1, 2014
Very nice :) |
This comment has been minimized.
This comment has been minimized.
ndemengel
commented
Apr 9, 2015
Thanks for your script, it came handy today! Note : I just forked it to add support for weeks. |
This comment has been minimized.
This comment has been minimized.
mrmanc
commented
Oct 6, 2015
I got this error running Python 2.6.6
To resolve this I added indices to the format tokens (as older versions of Python require) on line 48 to read: |
This comment has been minimized.
This comment has been minimized.
m30m
commented
Mar 22, 2016
Just made a simple UI for it: |
This comment has been minimized.
This comment has been minimized.
andrewgee
commented
Aug 15, 2016
@m30m Where's the UI gone? I used to use that lots :( |
This comment has been minimized.
This comment has been minimized.
sokratisg
commented
Aug 24, 2016
@m30m please check, very useful tool, shame it is not available any more |
This comment has been minimized.
This comment has been minimized.
bjorand
commented
Sep 6, 2016
Still available here: http://m30m.github.io/whisper-calculator/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
jjmaestro commentedJun 13, 2013
Just made the script executable (chmod 755 :)