diff options
author | David Robertson <davidr@element.io> | 2022-07-21 13:23:05 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-07-21 13:23:05 +0100 |
commit | 34949ead1f1f290710441d40187f7a35534ec1b2 (patch) | |
tree | d1fcedc28d5e1203ffb7ba0ec1b39967a6cc8446 | |
parent | Add missing types to opentracing. (#13345) (diff) | |
download | synapse-34949ead1f1f290710441d40187f7a35534ec1b2.tar.xz |
Track DB txn times w/ two counters, not histogram (#13342)
-rw-r--r-- | changelog.d/13342.misc | 1 | ||||
-rw-r--r-- | synapse/storage/database.py | 8 |
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, |