Bug fixes
[rrdaggregate.git] / rrdaggregate.py
1 #!/usr/bin/python
2
3 import yaml
4 import argparse
5 import os
6 from aggmgr import AggManager
7
8 expressions="""
9 (node\d+.princeton.vicci.org)/cpu-\d/.*
10 """
11
12 def main():
13         parser = argparse.ArgumentParser()
14         parser.add_argument('-datadir',help='Directory location of your rrd files',default='/usr/var/lib/collectd/rrd')
15         parser.add_argument('-rrdopts',help='Option string passed verbatim to rrdtool',default='--start now-1h --end now --json')
16         parser.add_argument('-pretend',help='Debug only',default=False,action='store_true')
17         parser.add_argument('program',help='Program in YAML that specifies the required aggregation.')
18         values = parser.parse_args()
19
20         aggp = AggManager(values.program)
21         aggp.match_on_directory(values.datadir)
22         aggp.gen_defs()
23
24         options = {'verbatim':values.rrdopts, 'defs':' '.join(aggp.defs), 'cdefs':' '.join(aggp.cdefs), 'xports':' '.join(aggp.xports)}
25         #print "Defs = %s\nCDefs=%s\nXports=%s"%(aggp.defs,aggp.cdefs,aggp.xports)
26         os.chdir(values.datadir)
27         cmdline = """
28         rrdtool xport %(verbatim)s %(defs)s %(cdefs)s %(xports)s
29         """%options
30
31         if (not values.pretend):
32                 os.system(cmdline)
33         else:
34                 print cmdline
35         
36
37
38 if __name__=='__main__':
39         main ()