add more info to sliceavg
authorStephen Soltesz <soltesz@cs.princeton.edu>
Thu, 21 Jan 2010 20:22:14 +0000 (20:22 +0000)
committerStephen Soltesz <soltesz@cs.princeton.edu>
Thu, 21 Jan 2010 20:22:14 +0000 (20:22 +0000)
parserpms does a better job of sorting and converting entries with multiple versions

statistics/harvest_rt.py
statistics/parserpms.py
statistics/sliceavg.py

index f3940e0..b9af3e8 100755 (executable)
@@ -4,6 +4,7 @@ import os
 import time
 from datetime import datetime, timedelta
 import sys
 import time
 from datetime import datetime, timedelta
 import sys
+from monitor.common import Time
 
 def popen(cmdstr):
        f = os.popen(cmdstr)
 
 def popen(cmdstr):
        f = os.popen(cmdstr)
@@ -31,14 +32,14 @@ def main():
        i = 0
        while i < iterations:
                d1_s = d1.strftime("%Y-%m-%d")
        i = 0
        while i < iterations:
                d1_s = d1.strftime("%Y-%m-%d")
-               d2 = d1 + timedelta(30)
+               d2 = d1 + timedelta(1)
                d2_s = d2.strftime("%Y-%m-%d")
                query = "Queue='%s' and " % queue 
                query = query + "Told > '%s' and Told < '%s'" % (d1_s, d2_s)
                cmd = """rt ls -t ticket "%s" | grep -v "No matching" | wc -l  """ % query
                d2_s = d2.strftime("%Y-%m-%d")
                query = "Queue='%s' and " % queue 
                query = query + "Told > '%s' and Told < '%s'" % (d1_s, d2_s)
                cmd = """rt ls -t ticket "%s" | grep -v "No matching" | wc -l  """ % query
-               print cmd
+               #print cmd
                ret = popen(cmd)
                ret = popen(cmd)
-               print d1_s, ",", ret[:-1]
+               print "%s,%s,%s" % (d1_s, Time.dt_to_ts(d1), ret[:-1])
                d1=d2
                i += 1
 
                d1=d2
                i += 1
 
index 54183c0..ef885e8 100755 (executable)
@@ -41,7 +41,7 @@ def main():
 
     parser.add_option("", "--input", dest="input", 
                         help="the input file")
 
     parser.add_option("", "--input", dest="input", 
                         help="the input file")
-    parser.add_option("", "--pattern", dest="select", 
+    parser.add_option("", "--select", dest="select", 
                         help="the pattern to pull out from rpm list")
     parser.add_option("", "--frequency", dest="frequency", action="store_true",
                         help="print the frequency of packages matched by select")
                         help="the pattern to pull out from rpm list")
     parser.add_option("", "--frequency", dest="frequency", action="store_true",
                         help="print the frequency of packages matched by select")
@@ -55,7 +55,7 @@ def main():
 
     rpmlist = fileutil.getListFromFile(config.input)
 
 
     rpmlist = fileutil.getListFromFile(config.input)
 
-    current_packages = ['NodeManager-1.8-5.planetlab',
+    current_packages_old = ['NodeManager-1.8-5.planetlab',
                 'NodeUpdate-0.5-4.planetlab', 'codemux-0.1-13.planetlab',
                 'fprobe-ulog-1.1.3-0.planetlab', 'ipod-2.2-1.planetlab',
                 'iproute-2.6.16-2.planetlab', 'iptables-1.3.8-9.planetlab',
                 'NodeUpdate-0.5-4.planetlab', 'codemux-0.1-13.planetlab',
                 'fprobe-ulog-1.1.3-0.planetlab', 'ipod-2.2-1.planetlab',
                 'iproute-2.6.16-2.planetlab', 'iptables-1.3.8-9.planetlab',
@@ -69,12 +69,25 @@ def main():
                 'vserver-systemslices-planetlab-f8-i386-4.2-12.2009.05.27',
                 'vsys-0.9-3.planetlab', 'vsys-scripts-0.95-3.planetlab']
 
                 'vserver-systemslices-planetlab-f8-i386-4.2-12.2009.05.27',
                 'vsys-0.9-3.planetlab', 'vsys-scripts-0.95-3.planetlab']
 
+    current_packages = ['NodeManager-1.8-12.planetlab.1',
+                'NodeUpdate-0.5-4.planetlab', 'codemux-0.1-13.planetlab',
+                'fprobe-ulog-1.1.3-0.planetlab', 'ipod-2.2-1.planetlab',
+                'iproute-2.6.16-2.planetlab', 'iptables-1.3.8-9.planetlab',
+                'kernel-2.6.22.19-vs2.3.0.34.39.planetlab',
+                'madwifi-0.9.4-2.6.22.19.3.planetlab', 'monitor-client-3.0-17.planetlab',
+                'monitor-runlevelagent-3.0-17.planetlab', 'pl_mom-2.3-1.planetlab',
+                'pl_sshd-1.0-11.planetlab', 'pyplnet-4.3-3.planetlab',
+                'util-vserver-pl-0.3-17.planetlab',
+                'vserver-planetlab-f8-i386-4.2-12.2009.06.23',
+                'vserver-systemslices-planetlab-f8-i386-4.2-12.2009.06.23',
+                'vsys-0.9-3.planetlab', 'vsys-scripts-0.95-11.planetlab']
+
     # PL RPMS
     if config.package:
         all_patterns = map(lambda x: ".*" + x + ".*", [ 'NodeManager', 
                 'NodeUpdate', 'codemux', 'fprobe', 'ipod',
                 'iproute', 'iptables', 'kernel', 'madwifi', 'monitor-client', 
     # PL RPMS
     if config.package:
         all_patterns = map(lambda x: ".*" + x + ".*", [ 'NodeManager', 
                 'NodeUpdate', 'codemux', 'fprobe', 'ipod',
                 'iproute', 'iptables', 'kernel', 'madwifi', 'monitor-client', 
-                'monitor-runlevelagent', 'monitor', 'oombailout', 'pl_mom', 
+                'monitor-runlevelagent', 'oombailout', 'pl_mom', 
                 'pl_sshd', 'pyplnet', 'util-vserver-pl', 'vserver-planetlab-f8-i386', 
                 'vserver-systemslices-planetlab-f8-i386', 'vsys-scripts', 'vsys'])
     else:
                 'pl_sshd', 'pyplnet', 'util-vserver-pl', 'vserver-planetlab-f8-i386', 
                 'vserver-systemslices-planetlab-f8-i386', 'vsys-scripts', 'vsys'])
     else:
@@ -82,11 +95,12 @@ def main():
     
     for pattern in all_patterns:
         return_sums = {}
     
     for pattern in all_patterns:
         return_sums = {}
+        print "%s --------------------" % pattern
         for line in rpmlist:
             line = line.strip()
         for line in rpmlist:
             line = line.strip()
-            fields = line.split()
-            host = fields[1]
-            rpms = fields[2:]
+            fields = line.split(",")
+            host = fields[0]
+            rpms = fields[2].split()
             rpms.sort()
             rpms = pick_some_rpms(pattern, rpms)
             if len(rpms) != 0:
             rpms.sort()
             rpms = pick_some_rpms(pattern, rpms)
             if len(rpms) != 0:
@@ -107,11 +121,15 @@ def main():
 
             sum_list.sort(lambda a,b: cmp(b[0], a[0]))
             for sum in sum_list:
 
             sum_list.sort(lambda a,b: cmp(b[0], a[0]))
             for sum in sum_list:
-                #print sum[0], sum[1], map(lambda x: x.replace('.planetlab', ''), return_sums[sum[1]]['diff'])
-                print sum[0], sum[1], len(map(lambda x: x.replace('.planetlab', ''), return_sums[sum[1]]['diff']))
+                print sum[0], sum[1]
+                #if len(return_sums[sum[1]]['hosts']) < 5:
+                #    print sum[0], sum[1], map(lambda x: x.replace('.planetlab', ''), return_sums[sum[1]]['diff']) #, return_sums[sum[1]]['hosts']
+                #else:
+                #    print sum[0], sum[1], map(lambda x: x.replace('.planetlab', ''), return_sums[sum[1]]['diff'])
+                #print sum[0], sum[1], len(map(lambda x: x.replace('.planetlab', ''), return_sums[sum[1]]['diff']))
 
 if __name__ == "__main__":
 
 if __name__ == "__main__":
-       try:
-               main()
-       except IOError:
-               pass
+    try:
+        main()
+    except IOError:
+        pass
index 739814f..012ba6b 100755 (executable)
@@ -5,6 +5,8 @@ import sys
 
 from monitor.wrapper import plc
 
 
 from monitor.wrapper import plc
 
+from monitor.database.info.model import *
+
 api = plc.cacheapi
 api.AuthCheck()
 
 api = plc.cacheapi
 api.AuthCheck()
 
@@ -18,28 +20,29 @@ for site in api.GetSites({'peer_id': None}):
        sliver_cnt = 0
        for slice in sl:
                sliver_cnt += len(slice['node_ids'])
        sliver_cnt = 0
        for slice in sl:
                sliver_cnt += len(slice['node_ids'])
-       val = (site['login_base'], sliver_cnt)
+       val = (site['login_base'], sliver_cnt, site['max_slices'])
        site_list.append(val)
        #print val
 
        site_list.append(val)
        #print val
 
-print "------------------------------------------"
 site_list.sort(lambda x,y: cmp(y[1], x[1]))
 totals = 0
 use_count = 0
 site_list.sort(lambda x,y: cmp(y[1], x[1]))
 totals = 0
 use_count = 0
+print "loginbase,status,sliver_count,max_slices"
 for i in site_list:
        if i[1] != 0: 
 for i in site_list:
        if i[1] != 0: 
-               print "%10s %s" % i
+               h = HistorySiteRecord.get_by(loginbase=i[0])
+               print "%10s,%s,%s,%s" % (i[0],h.status, i[1], i[2])
                use_count += 1
        totals += i[1]
 
 site_avg = totals/len(site_list)
 
                use_count += 1
        totals += i[1]
 
 site_avg = totals/len(site_list)
 
-print "high: %s %s" % site_list[0]
-print "low: %s %s" % site_list[-1]
-print "median: %s %s" % site_list[len(site_list)/2]
-print "used median: %s %s" % site_list[use_count/2]
-print "all avg: %s" % site_avg
-print "used avg: %s" % (totals/use_count)
-print "totals: %s" % totals 
-print "use_count: %s" % use_count
-print "site_count: %s" % len(site_list)
+#print "high: %s %s" % site_list[0]
+#print "low: %s %s" % site_list[-1]
+#print "median: %s %s" % site_list[len(site_list)/2]
+#print "used median: %s %s" % site_list[use_count/2]
+#print "all avg: %s" % site_avg
+#print "used avg: %s" % (totals/use_count)
+#print "totals: %s" % totals 
+#print "use_count: %s" % use_count
+#print "site_count: %s" % len(site_list)