[Checkins] SVN: zc.zodbactivitylog/branches/dev/ Added a simple analysis report.

Jim Fulton jim at zope.com
Fri May 4 13:04:06 EDT 2007


Log message for revision 75459:
  Added a simple analysis report.
  

Changed:
  U   zc.zodbactivitylog/branches/dev/buildout.cfg
  U   zc.zodbactivitylog/branches/dev/setup.py
  A   zc.zodbactivitylog/branches/dev/src/zc/zodbactivitylog/report.py

-=-
Modified: zc.zodbactivitylog/branches/dev/buildout.cfg
===================================================================
--- zc.zodbactivitylog/branches/dev/buildout.cfg	2007-05-04 16:09:21 UTC (rev 75458)
+++ zc.zodbactivitylog/branches/dev/buildout.cfg	2007-05-04 17:04:05 UTC (rev 75459)
@@ -1,6 +1,6 @@
 [buildout]
 develop = .
-parts = instance
+parts = instance zodbactivityreport
 
 [zope3]
 recipe = zc.recipe.zope3checkout
@@ -46,8 +46,6 @@
 zope.conf =
    ${database:zconfig}
 
-    
-
     <logger>
        name zc.zodbactivitylog
        propagate false
@@ -61,3 +59,7 @@
 
 [database]
 recipe = zc.recipe.filestorage
+
+[zodbactivityreport]
+recipe = zc.recipe.egg:script
+eggs = zc.zodbactivitylog

Modified: zc.zodbactivitylog/branches/dev/setup.py
===================================================================
--- zc.zodbactivitylog/branches/dev/setup.py	2007-05-04 16:09:21 UTC (rev 75458)
+++ zc.zodbactivitylog/branches/dev/setup.py	2007-05-04 17:04:05 UTC (rev 75459)
@@ -1,6 +1,8 @@
 from setuptools import setup, find_packages
 
 entry_points = """
+[console_scripts]
+zodbactivityreport = zc.zodbactivitylog.report:main
 """
 
 setup(

Added: zc.zodbactivitylog/branches/dev/src/zc/zodbactivitylog/report.py
===================================================================
--- zc.zodbactivitylog/branches/dev/src/zc/zodbactivitylog/report.py	2007-05-04 16:09:21 UTC (rev 75458)
+++ zc.zodbactivitylog/branches/dev/src/zc/zodbactivitylog/report.py	2007-05-04 17:04:05 UTC (rev 75459)
@@ -0,0 +1,65 @@
+##############################################################################
+#
+# Copyright (c) 2006 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.1 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+"""Simple report for zodb activity log
+"""
+
+import datetime, sys
+
+def parsedt(s):
+    date, time = s.split('T')
+    return datetime.datetime(*(
+        map(int, date.split('-')) 
+        +
+        map(int, time.split(':'))         
+        ))
+
+def main(args=None):
+    if args is None:
+        args = sys.argv[1:]
+
+    try:
+        [file, deltat] = args
+        deltat = int(deltat)
+    except ValueError:
+        try:
+            [file] = args
+            deltat = 5
+        except ValueError:
+            print 'usage: %s filename [minutes]' % sys.argv[0]
+            sys.exit(1)
+
+    start = None
+
+    last = None
+    sum_reads = sum_writes = 0
+    for line in open(file):
+        dt, reads, writes = line.split()[:3]
+        date, time = dt.split('T')
+        h, m = time.split(':')[:2]
+        m = (int(m) // deltat) * deltat
+        key = date, h, m
+        if key != last:
+            if last is not None:
+                print "%sT%s:%.2d" % last, sum_reads, sum_writes
+                sum_reads = sum_writes = 0
+            last = key
+        sum_reads += int(reads)
+        sum_writes += int(writes)
+
+    if key and (sum_reads or sum_writes):
+        print "%sT%s:%.2d" % last, sum_reads, sum_writes
+        
+                
+        
+    


Property changes on: zc.zodbactivitylog/branches/dev/src/zc/zodbactivitylog/report.py
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native



More information about the Checkins mailing list