Merge branch 'master' into timeheap
[ashd.git] / python3 / ashd / perf.py
index 6942424..86fe43c 100644 (file)
@@ -3,6 +3,11 @@ try:
     import pdm.perf
 except:
     pdm = None
+try:
+    import time
+    clock_thread = time.CLOCK_THREAD_CPUTIME_ID
+except:
+    clock_thread = None
 
 reqstat = {}
 
@@ -17,13 +22,23 @@ if pdm:
             self.method = env.get("REQUEST_METHOD")
             self.uri = env.get("REQUEST_URI")
             self.host = env.get("HTTP_HOST")
+            self.script_uri = env.get("SCRIPT_NAME")
+            self.script_path = env.get("SCRIPT_FILENAME")
+            self.pathinfo = env.get("PATH_INFO")
+            self.querystring = env.get("QUERY_STRING")
             self.remoteaddr = env.get("REMOTE_ADDR")
             self.remoteport = env.get("REMOTE_PORT")
+            self.scheme = env.get("wsgi.url_scheme")
+            if clock_thread is not None:
+                self.icpu = time.clock_gettime(clock_thread)
 
     class reqfinish(pdm.perf.finishevent):
         def __init__(self, start, aborted, status):
             super().__init__(start, aborted)
             self.status = status
+            self.cputime = 0
+            if clock_thread is not None:
+                self.cputime = time.clock_gettime(clock_thread) - start.icpu
 
 class request(object):
     def __init__(self, env):