diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2021-06-03 16:31:56 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-06-03 16:31:56 +0100 |
commit | 9eea4646be5eef1e2b24e3b0bb0fc94999c2250c (patch) | |
tree | 744bc71d4b048a49ed9a84148c2474ee48510d55 /synapse/logging/opentracing.py | |
parent | Improve opentracing annotations for Notifier (#10111) (diff) | |
download | synapse-9eea4646be5eef1e2b24e3b0bb0fc94999c2250c.tar.xz |
Add OpenTracing for database activity. (#10113)
This adds quite a lot of OpenTracing decoration for database activity. Specifically it adds tracing at four different levels: * emit a span for each "interaction" - ie, the top level database function that we tend to call "transaction", but isn't really, because it can end up as multiple transactions. * emit a span while we hold a database connection open * emit a span for each database transaction - actual actual transaction. * emit a span for each database query. I'm aware this might be quite a lot of overhead, but even just running it on a local Synapse it looks really interesting, and I hope the overhead can be offset just by turning down the sampling frequency and finding other ways of tracing requests of interest (eg, the `force_tracing_for_users` setting).
Diffstat (limited to 'synapse/logging/opentracing.py')
-rw-r--r-- | synapse/logging/opentracing.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/synapse/logging/opentracing.py b/synapse/logging/opentracing.py index f64845b80c..68f0c00151 100644 --- a/synapse/logging/opentracing.py +++ b/synapse/logging/opentracing.py @@ -271,6 +271,12 @@ class SynapseTags: # HTTP request tag (used to distinguish full vs incremental syncs, etc) REQUEST_TAG = "request_tag" + # Text description of a database transaction + DB_TXN_DESC = "db.txn_desc" + + # Uniqueish ID of a database transaction + DB_TXN_ID = "db.txn_id" + # Block everything by default # A regex which matches the server_names to expose traces for. |