convenience, maintenance scripts
[monitor.git] / statistics / sliceavg.py
1 #!/usr/bin/python
2
3 import os
4 import sys
5
6 from monitor.wrapper import plc
7
8 api = plc.cacheapi
9 api.AuthCheck()
10
11 # for each site, find total number of assigned slivers
12 # find median, high, low, average
13
14 site_list = []
15
16 for site in api.GetSites({'peer_id': None}):
17         sl = api.GetSlices(site['slice_ids'])
18         sliver_cnt = 0
19         for slice in sl:
20                 sliver_cnt += len(slice['node_ids'])
21         val = (site['login_base'], sliver_cnt)
22         site_list.append(val)
23         #print val
24
25 print "------------------------------------------"
26 site_list.sort(lambda x,y: cmp(y[1], x[1]))
27 totals = 0
28 use_count = 0
29 for i in site_list:
30         if i[1] != 0: 
31                 print "%10s %s" % i
32                 use_count += 1
33         totals += i[1]
34
35 site_avg = totals/len(site_list)
36
37 print "high: %s %s" % site_list[0]
38 print "low: %s %s" % site_list[-1]
39 print "median: %s %s" % site_list[len(site_list)/2]
40 print "used median: %s %s" % site_list[use_count/2]
41 print "all avg: %s" % site_avg
42 print "used avg: %s" % (totals/use_count)
43 print "totals: %s" % totals 
44 print "use_count: %s" % use_count
45 print "site_count: %s" % len(site_list)