summary refs log tree commit diff
path: root/synapse/storage
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2014-10-28 10:34:05 +0000
committerErik Johnston <erik@matrix.org>2014-10-28 10:34:05 +0000
commit8e358ef35a8e2640176003cdb2396a9b4d71fbce (patch)
tree0868d29d3ec2c489499cf3ceb625a66a31f5a3b7 /synapse/storage
parentRemove duplicate import (diff)
downloadsynapse-8e358ef35a8e2640176003cdb2396a9b4d71fbce.tar.xz
Add timer to LoggingTransaction
Diffstat (limited to 'synapse/storage')
-rw-r--r--synapse/storage/_base.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/synapse/storage/_base.py b/synapse/storage/_base.py
index 65a86e9056..e839704a8c 100644
--- a/synapse/storage/_base.py
+++ b/synapse/storage/_base.py
@@ -23,6 +23,7 @@ from synapse.util.logutils import log_function
 import collections
 import copy
 import json
+import time
 
 
 logger = logging.getLogger(__name__)
@@ -61,9 +62,15 @@ class LoggingTransaction(object):
 
         # TODO(paul): Here would be an excellent place to put some timing
         #   measurements, and log (warning?) slow queries.
-        return object.__getattribute__(self, "txn").execute(
-            sql, *args, **kwargs
-        )
+
+        start = time.clock() * 1000
+        try:
+            return object.__getattribute__(self, "txn").execute(
+                sql, *args, **kwargs
+            )
+        finally:
+            end = time.clock() * 1000
+            sql_logger.debug("[SQL time] %f", end - start)
 
 
 class SQLBaseStore(object):