[Checkins] SVN: zc.resumelb/trunk/src/zc/resumelb/ - Changed the way tracelog records are identified to reflect lb

jim cvs-admin at zope.org
Thu May 3 15:28:52 UTC 2012


Log message for revision 125632:
  - Changed the way tracelog records are identified to reflect lb
    request numbers.  Records are disambiguated by including an lb
    identifier as a prefix.  For example "1.22" indicated request number
    22 from lb 1.
  

Changed:
  U   zc.resumelb/trunk/src/zc/resumelb/README.txt
  U   zc.resumelb/trunk/src/zc/resumelb/worker.py
  U   zc.resumelb/trunk/src/zc/resumelb/worker.test

-=-
Modified: zc.resumelb/trunk/src/zc/resumelb/README.txt
===================================================================
--- zc.resumelb/trunk/src/zc/resumelb/README.txt	2012-05-03 10:24:05 UTC (rev 125631)
+++ zc.resumelb/trunk/src/zc/resumelb/README.txt	2012-05-03 15:28:47 UTC (rev 125632)
@@ -242,6 +242,14 @@
 Change History
 ==============
 
+0.5.0 (2012-05-??)
+------------------
+
+- Changed the way tracelog records are identified to reflect lb
+  request numbers.  Records are disambiguated by including an lb
+  identifier as a prefix.  For example "1.22" indicated request number
+  22 from lb 1.
+
 0.4.0 (2012-04-27)
 ------------------
 

Modified: zc.resumelb/trunk/src/zc/resumelb/worker.py
===================================================================
--- zc.resumelb/trunk/src/zc/resumelb/worker.py	2012-05-03 10:24:05 UTC (rev 125631)
+++ zc.resumelb/trunk/src/zc/resumelb/worker.py	2012-05-03 15:28:47 UTC (rev 125632)
@@ -33,6 +33,7 @@
                  history=None, max_skill_age=None,
                  resume_file=None, threads=None, tracelog=None,
                  tracelog_key='tracelog'):
+
         self.app = app
         self.update_settings(dict(history=history, max_skill_age=max_skill_age))
         self.resume_file = resume_file
@@ -58,7 +59,6 @@
         else:
             pool_apply = None
 
-        self.trno = 0
         def call_app(trno, env):
             response = [0]
             env['zc.resumelb.time'] = time.time()
@@ -159,6 +159,12 @@
     def handle_connection(self, sock, addr):
         try:
             conn = zc.resumelb.util.Worker()
+            # compute a short unique id for the connection/lb
+            connid = 0
+            while [c for c in self.connections if c.id == connid]:
+                connid += 1
+            conn.id = connid
+            logger.info("Received connection (%s) from %s", connid, addr)
             self.connections.add(conn)
             readers = conn.connected(sock, addr)
             conn.put((0, self.resume))
@@ -187,8 +193,7 @@
     def handle(self, conn, rno, get, env):
         try:
             if self.tracelog:
-                self.trno += 1
-                trno = self.trno
+                trno = "%s.%s" % (conn.id, rno)
                 query_string = env.get('QUERY_STRING')
                 url = env['PATH_INFO']
                 if query_string:

Modified: zc.resumelb/trunk/src/zc/resumelb/worker.test
===================================================================
--- zc.resumelb/trunk/src/zc/resumelb/worker.test	2012-05-03 10:24:05 UTC (rev 125631)
+++ zc.resumelb/trunk/src/zc/resumelb/worker.test	2012-05-03 15:28:47 UTC (rev 125632)
@@ -598,26 +598,26 @@
 
     >>> write_message(worker_socket, 11, newenv('', '/sleep.html?dur=.1'))
     >>> gevent.sleep(.01)
-    B 1 2012-02-05 01:02:03.000456 GET /sleep.html?dur=.1
+    B 0.11 2012-02-05 01:02:03.000456 GET /sleep.html?dur=.1
     >>> now += datetime.timedelta(microseconds=10000)
     >>> write_message(worker_socket, 22,
     ...               newenv('', '/sleep.html?dur=.1&size=111'))
     >>> gevent.sleep(.01)
-    B 2 2012-02-05 01:02:03.010456 GET /sleep.html?dur=.1&size=111
+    B 0.22 2012-02-05 01:02:03.010456 GET /sleep.html?dur=.1&size=111
     >>> now += datetime.timedelta(microseconds=10000)
     >>> write_message(worker_socket, 22, '')
     >>> gevent.sleep(.01)
-    I 2 2012-02-05 01:02:03.020456
-    C 2 2012-02-05 01:02:03.020456
+    I 0.22 2012-02-05 01:02:03.020456
+    C 0.22 2012-02-05 01:02:03.020456
     >>> now += datetime.timedelta(microseconds=10000)
     >>> write_message(worker_socket, 11, '')
     >>> read_message(worker_socket) # doctest: +ELLIPSIS
-    I 1 2012-02-05 01:02:03.030456
-    T 2 2012-02-05 01:02:03.030456 test
-    - 2 2012-02-05 01:02:03.030456 test2
-    A 2 2012-02-05 01:02:03.030456 200 OK 1332
-    C 1 2012-02-05 01:02:03.030456
-    E 2 2012-02-05 01:02:03.030456
+    I 0.11 2012-02-05 01:02:03.030456
+    T 0.22 2012-02-05 01:02:03.030456 test
+    - 0.22 2012-02-05 01:02:03.030456 test2
+    A 0.22 2012-02-05 01:02:03.030456 200 OK 1332
+    C 0.11 2012-02-05 01:02:03.030456
+    E 0.22 2012-02-05 01:02:03.030456
     (22, ('200 OK', [('Content-Length', ...
 
     >>> while 1:
@@ -628,10 +628,10 @@
     ...     if not data: break
 
     >>> read_message(worker_socket) # doctest: +ELLIPSIS
-    T 1 2012-02-05 01:02:03.030456 test
-    - 1 2012-02-05 01:02:03.030456 test2
-    A 1 2012-02-05 01:02:03.030456 200 OK 12
-    E 1 2012-02-05 01:02:03.030456
+    T 0.11 2012-02-05 01:02:03.030456 test
+    - 0.11 2012-02-05 01:02:03.030456 test2
+    A 0.11 2012-02-05 01:02:03.030456 200 OK 12
+    E 0.11 2012-02-05 01:02:03.030456
     (11, ('200 OK', [...('Content-Length', '12')]))
 
 Note that the tracelog request ids are distinct from the request
@@ -645,11 +645,11 @@
     >>> _ = read_message(worker_socket2)
     >>> write_message(worker_socket2, 22, newenv('', '/hi.html'), '')
     >>> read_message(worker_socket2) # doctest: +ELLIPSIS
-    B 3 2012-02-05 01:02:03.040456 GET /hi.html
-    I 3 2012-02-05 01:02:03.040456
-    C 3 2012-02-05 01:02:03.040456
-    A 3 2012-02-05 01:02:03.040456 200 OK 79
-    E 3 2012-02-05 01:02:03.040456
+    B 1.22 2012-02-05 01:02:03.040456 GET /hi.html
+    I 1.22 2012-02-05 01:02:03.040456
+    C 1.22 2012-02-05 01:02:03.040456
+    A 1.22 2012-02-05 01:02:03.040456 200 OK 79
+    E 1.22 2012-02-05 01:02:03.040456
     (22, ('200 OK', [('Content-Type', ...
 
 



More information about the checkins mailing list