summary refs log tree commit diff
diff options
context:
space:
mode:
authorDavid Robertson <davidr@element.io>2022-07-21 13:23:05 +0100
committerGitHub <noreply@github.com>2022-07-21 13:23:05 +0100
commit34949ead1f1f290710441d40187f7a35534ec1b2 (patch)
treed1fcedc28d5e1203ffb7ba0ec1b39967a6cc8446
parentAdd missing types to opentracing. (#13345) (diff)
downloadsynapse-34949ead1f1f290710441d40187f7a35534ec1b2.tar.xz
Track DB txn times w/ two counters, not histogram (#13342)
Diffstat (limited to '')
-rw-r--r--changelog.d/13342.misc1
-rw-r--r--synapse/storage/database.py8
2 files changed, 6 insertions, 3 deletions
diff --git a/changelog.d/13342.misc b/changelog.d/13342.misc
new file mode 100644
index 0000000000..ce9c816b9c
--- /dev/null
+++ b/changelog.d/13342.misc
@@ -0,0 +1 @@
+When reporting metrics is enabled, use ~8x less data to describe DB transaction metrics.
diff --git a/synapse/storage/database.py b/synapse/storage/database.py
index ea672ff89e..b394a6658b 100644
--- a/synapse/storage/database.py
+++ b/synapse/storage/database.py
@@ -39,7 +39,7 @@ from typing import (
 )
 
 import attr
-from prometheus_client import Histogram
+from prometheus_client import Counter, Histogram
 from typing_extensions import Concatenate, Literal, ParamSpec
 
 from twisted.enterprise import adbapi
@@ -76,7 +76,8 @@ perf_logger = logging.getLogger("synapse.storage.TIME")
 sql_scheduling_timer = Histogram("synapse_storage_schedule_time", "sec")
 
 sql_query_timer = Histogram("synapse_storage_query_time", "sec", ["verb"])
-sql_txn_timer = Histogram("synapse_storage_transaction_time", "sec", ["desc"])
+sql_txn_count = Counter("synapse_storage_transaction_time_count", "sec", ["desc"])
+sql_txn_duration = Counter("synapse_storage_transaction_time_sum", "sec", ["desc"])
 
 
 # Unique indexes which have been added in background updates. Maps from table name
@@ -795,7 +796,8 @@ class DatabasePool:
 
             self._current_txn_total_time += duration
             self._txn_perf_counters.update(desc, duration)
-            sql_txn_timer.labels(desc).observe(duration)
+            sql_txn_count.labels(desc).inc(1)
+            sql_txn_duration.labels(desc).inc(duration)
 
     async def runInteraction(
         self,