[CalendarServer-changes] [1630] CalendarServer/trunk/twistedcaldav/admin

source_changes at macosforge.org source_changes at macosforge.org
Thu Jun 28 19:51:13 PDT 2007


Revision: 1630
          http://trac.macosforge.org/projects/calendarserver/changeset/1630
Author:   cdaboo at apple.com
Date:     2007-06-28 19:51:13 -0700 (Thu, 28 Jun 2007)

Log Message:
-----------
Add active user counts to stats and output.

Modified Paths:
--------------
    CalendarServer/trunk/twistedcaldav/admin/formatters.py
    CalendarServer/trunk/twistedcaldav/admin/logs.py

Modified: CalendarServer/trunk/twistedcaldav/admin/formatters.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/admin/formatters.py	2007-06-28 17:48:30 UTC (rev 1629)
+++ CalendarServer/trunk/twistedcaldav/admin/formatters.py	2007-06-29 02:51:13 UTC (rev 1630)
@@ -260,11 +260,18 @@
             self.writeFrequencies(freqs)
             self.write('\n')
 
-        self.write('  User Agents:\n')
+        self.write('  User Agents: total=%d\n' % (len(report['data']['userAgents']),))
 
         for ua, count in report['data']['userAgents'].iteritems():
             self.write('    %s: %s\n' % (ua, count))
 
+        self.write('  Active Users: total=%d\n' % (len(report['data']['activeUsers']),))
+
+        sorted_list = [item for item in report['data']['activeUsers'].iteritems()]
+        sorted_list.sort(cmp=lambda x,y: x[1] - y[1])
+        for user, count in sorted_list:
+            self.write('    %s: %s\n' % (user, count))
+
 registerFormatter(PlainFormatter)
 
 
@@ -565,13 +572,24 @@
             self.writeFrequencies(freqs)
             self.write('<br>\n')
 
-        self.write('<h3>User Agents:</h3>\n')
+        self.write('<h3>User Agents: total=%d</h3>\n' % (len(report['data']['userAgents']),))
 
         self.write("<table border='1'>")
         self.write('  <tr><td>User Agent</td><td># Requests</td></tr>\n')
         for ua, count in report['data']['userAgents'].iteritems():
             self.write('  <tr><td>%s:</td><td align=\'right\'>%s</td></tr>\n' % (ua, count))
         self.write('</table>\n')
+
+        self.write('<h3>Active Users: total=%d</h3>\n' % (len(report['data']['activeUsers']),))
+
+        self.write("<table border='1'>")
+        self.write('  <tr><td>User Principal</td><td># Requests</td></tr>\n')
+
+        sorted_list = [item for item in report['data']['activeUsers'].iteritems()]
+        sorted_list.sort(cmp=lambda x,y: y[1] - x[1],)
+        for user, count in sorted_list:
+            self.write('  <tr><td>%s:</td><td align=\'right\'>%s</td></tr>\n' % (user, count))
+        self.write('</table>\n')
         
         self.write('</body>\n</html>\n')
 

Modified: CalendarServer/trunk/twistedcaldav/admin/logs.py
===================================================================
--- CalendarServer/trunk/twistedcaldav/admin/logs.py	2007-06-28 17:48:30 UTC (rev 1629)
+++ CalendarServer/trunk/twistedcaldav/admin/logs.py	2007-06-29 02:51:13 UTC (rev 1630)
@@ -30,22 +30,23 @@
 
 from twistedcaldav.admin import util
 
-PLIST_VERSION = 3
+PLIST_VERSION = 4
 
 statsTemplate = plistlib.Dict(
     version=PLIST_VERSION,
     bytesOut="0",
     startDate="",
     endDate="",
-    requestStats=plistlib.Dict(),
+    requestStats={},
     timeOfDayStats=[0] * 96,
-    requestByTimeOfDayStats=plistlib.Dict(),
-    invitations=plistlib.Dict(
-        day=0, 
-        week=0, 
-        month=0, 
-        ),
-    userAgents=plistlib.Dict(),
+    requestByTimeOfDayStats={},
+    invitations={
+        "day":0, 
+        "week":0, 
+        "month":0, 
+        },
+    userAgents={},
+    activeUsers={},
     )
 
 def _strAdd(value, add):
@@ -151,6 +152,15 @@
     def getUserAgents(self):
         return self._data.userAgents
 
+    def addActiveUser(self, principal):
+        if principal in self._data.activeUsers:
+            self._data.activeUsers[principal] += 1
+        else:
+            self._data.activeUsers[principal] = 1
+
+    def getActiveUsers(self):
+        return self._data.activeUsers
+
     def save(self):
         plistlib.writePlist(self._data, self.fp.path)
 
@@ -232,6 +242,9 @@
 
                     if len(pline) > 7:
                         self.stats.addUserAgent(pline[8])
+
+                    if pline[2] != "-":
+                        self.stats.addActiveUser(pline[2])
                         
                 if (50 * line_count) / total_count > last_count:
                     sys.stdout.write(".")
@@ -253,6 +266,7 @@
                     'timeOfDayStats': self.stats.getTimeOfDayStats(),
                     'requestByTimeOfDayStats': self.stats.getRequestByTimeOfDayStats(),
                     'userAgents': self.stats.getUserAgents(),
+                    'activeUsers': self.stats.getActiveUsers(),
                     }
                 }
 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20070628/fb40640f/attachment.html


More information about the calendarserver-changes mailing list