summary refs log tree commit diff
path: root/synapse/app
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2019-02-12 13:55:58 +0000
committerErik Johnston <erik@matrix.org>2019-02-12 13:55:58 +0000
commitef2228c890b44963c65f086eb1246c27ef43d256 (patch)
tree18388dce006970da20598af6a8b02b69839e5703 /synapse/app
parentFixup changelog entries (diff)
downloadsynapse-ef2228c890b44963c65f086eb1246c27ef43d256.tar.xz
Basic sentry integration
Diffstat (limited to 'synapse/app')
-rw-r--r--synapse/app/_base.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/synapse/app/_base.py b/synapse/app/_base.py
index 5b0ca312e2..d681ff5245 100644
--- a/synapse/app/_base.py
+++ b/synapse/app/_base.py
@@ -25,10 +25,12 @@ from daemonize import Daemonize
 from twisted.internet import error, reactor
 from twisted.protocols.tls import TLSMemoryBIOFactory
 
+import synapse
 from synapse.app import check_bind_error
 from synapse.crypto import context_factory
 from synapse.util import PreserveLoggingContext
 from synapse.util.rlimit import change_resource_limit
+from synapse.util.versionstring import get_version_string
 
 logger = logging.getLogger(__name__)
 
@@ -266,9 +268,29 @@ def start(hs, listeners=None):
         # It is now safe to start your Synapse.
         hs.start_listening(listeners)
         hs.get_datastore().start_profiling()
+
+        setup_sentry_io(hs)
     except Exception:
         traceback.print_exc(file=sys.stderr)
         reactor = hs.get_reactor()
         if reactor.running:
             reactor.stop()
         sys.exit(1)
+
+
+def setup_sentry_io(hs):
+    if not hs.config.sentry_enabled:
+        return
+
+    import sentry_sdk
+    sentry_sdk.init(
+        dsn=hs.config.sentry_dsn,
+        release=get_version_string(synapse),
+    )
+    with sentry_sdk.configure_scope() as scope:
+        scope.set_tag("matrix_server_name", hs.config.server_name)
+
+        app = hs.config.worker_app if hs.config.worker_app else "synapse.app.homeserver"
+        name = hs.config.worker_name if hs.config.worker_name else "master"
+        scope.set_tag("worker_app", app)
+        scope.set_tag("worker_name", name)