[or-cvs] r21640: {projects} Add metrics script (projects/gettor)
Christian Fromme
kaner at strace.org
Sun Feb 14 18:11:37 UTC 2010
Author: kaner
Date: 2010-02-14 18:11:37 +0000 (Sun, 14 Feb 2010)
New Revision: 21640
Added:
projects/gettor/MakeStat.py
Modified:
projects/gettor/setup.py
Log:
Add metrics script
Added: projects/gettor/MakeStat.py
===================================================================
--- projects/gettor/MakeStat.py (rev 0)
+++ projects/gettor/MakeStat.py 2010-02-14 18:11:37 UTC (rev 21640)
@@ -0,0 +1,102 @@
+#!/usr/bin/python
+
+import sys
+import os
+import re
+import string
+
+def emptyPacks(packs):
+ for k, v in packs.iteritems():
+ packs[k] = 0
+ return packs
+
+def makestats(filename, days):
+ day = None
+ pack = None
+ lang = None
+ packages = {"None": 0,
+ "tor-browser-bundle": 0,
+ "tor-im-browser-bundle": 0,
+ "tor-browser-bundle_en": 0,
+ "tor-im-browser-bundle_en": 0,
+ "tor-browser-bundle_de": 0,
+ "tor-im-browser-bundle_de": 0,
+ "tor-browser-bundle_ar": 0,
+ "tor-im-browser-bundle_ar": 0,
+ "tor-browser-bundle_es": 0,
+ "tor-im-browser-bundle_es": 0,
+ "tor-browser-bundle_fa": 0,
+ "tor-im-browser-bundle_fa": 0,
+ "tor-browser-bundle_fr": 0,
+ "tor-im-browser-bundle_fr": 0,
+ "tor-browser-bundle_it": 0,
+ "tor-im-browser-bundle_it": 0,
+ "tor-browser-bundle_nl": 0,
+ "tor-im-browser-bundle_nl": 0,
+ "tor-browser-bundle_pl": 0,
+ "tor-im-browser-bundle_pl": 0,
+ "tor-browser-bundle_pt": 0,
+ "tor-im-browser-bundle_pt": 0,
+ "tor-browser-bundle_ru": 0,
+ "tor-im-browser-bundle_ru": 0,
+ "tor-browser-bundle_zh_CN": 0,
+ "tor-im-browser-bundle_zh_CN": 0,
+ "source-bundle": 0,
+ "macosx-ppc-bundle": 0,
+ "macosx-i386-bundle": 0}
+
+ try:
+ logFile = open(filename, 'r')
+ except:
+ print "Couldn't open logfile %s" % filename
+ sys.exit(1)
+ readData = logFile.read().split('\n')
+ for line in readData:
+ match = re.match(".*Request from.*", line, re.DOTALL)
+ if match:
+ splitline = string.split(line)
+ if len(splitline) > 12:
+ day = splitline[0]
+ pack = splitline[7]
+ lang = splitline[9]
+ if not re.match("[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]", day):
+ continue
+ pack = pack.strip(',')
+ lang = lang.strip(',')
+ if day in days:
+ packs = days[day]
+ else:
+ packs = emptyPacks(packages).copy()
+ if pack is not None:
+ if pack in packs:
+ packs[pack] += 1
+ days[day] = packs
+
+def printStatsStdout(days):
+ for day in sorted(days.iterkeys()):
+ packs = days[day]
+ daystr = "%s -" % day
+ print daystr,
+ for pack in sorted(packs.iterkeys()):
+ packstr = "%s:%s" % (pack, packs[pack])
+ print packstr,
+ print ""
+
+
+def main():
+ days = {}
+
+ if len(sys.argv) != 2:
+ print >> sys.stderr, "Usage: %s LOGDIR" % sys.argv[0]
+ sys.exit(1)
+ if not os.path.isdir(sys.argv[1]):
+ print >> sys.stderr, "Not a directory: %s" % sys.argv[1]
+ sys.exit(1)
+ for dirname, dirnames, filenames in os.walk('.'):
+ for filename in filenames:
+ makestats(filename, days)
+
+ printStatsStdout(days)
+
+if __name__ == "__main__":
+ main()
Modified: projects/gettor/setup.py
===================================================================
--- projects/gettor/setup.py 2010-02-14 13:13:13 UTC (rev 21639)
+++ projects/gettor/setup.py 2010-02-14 18:11:37 UTC (rev 21640)
@@ -30,7 +30,7 @@
package_dir={'': 'lib'},
packages=['gettor'],
data_files = data_files.items(),
- scripts = ["GetTor.py"],
+ scripts = ["GetTor.py", "MakeStat.py"],
py_modules=['GetTor'],
long_description = """Really long text here."""
)
More information about the tor-commits
mailing list