mirror of
https://mau.dev/maunium/synapse.git
synced 2024-12-17 04:23:51 +01:00
Basic sentry integration
This commit is contained in:
parent
b18cd25e42
commit
ef2228c890
3 changed files with 31 additions and 0 deletions
|
@ -25,10 +25,12 @@ from daemonize import Daemonize
|
||||||
from twisted.internet import error, reactor
|
from twisted.internet import error, reactor
|
||||||
from twisted.protocols.tls import TLSMemoryBIOFactory
|
from twisted.protocols.tls import TLSMemoryBIOFactory
|
||||||
|
|
||||||
|
import synapse
|
||||||
from synapse.app import check_bind_error
|
from synapse.app import check_bind_error
|
||||||
from synapse.crypto import context_factory
|
from synapse.crypto import context_factory
|
||||||
from synapse.util import PreserveLoggingContext
|
from synapse.util import PreserveLoggingContext
|
||||||
from synapse.util.rlimit import change_resource_limit
|
from synapse.util.rlimit import change_resource_limit
|
||||||
|
from synapse.util.versionstring import get_version_string
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -266,9 +268,29 @@ def start(hs, listeners=None):
|
||||||
# It is now safe to start your Synapse.
|
# It is now safe to start your Synapse.
|
||||||
hs.start_listening(listeners)
|
hs.start_listening(listeners)
|
||||||
hs.get_datastore().start_profiling()
|
hs.get_datastore().start_profiling()
|
||||||
|
|
||||||
|
setup_sentry_io(hs)
|
||||||
except Exception:
|
except Exception:
|
||||||
traceback.print_exc(file=sys.stderr)
|
traceback.print_exc(file=sys.stderr)
|
||||||
reactor = hs.get_reactor()
|
reactor = hs.get_reactor()
|
||||||
if reactor.running:
|
if reactor.running:
|
||||||
reactor.stop()
|
reactor.stop()
|
||||||
sys.exit(1)
|
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)
|
||||||
|
|
|
@ -23,12 +23,20 @@ class MetricsConfig(Config):
|
||||||
self.metrics_port = config.get("metrics_port")
|
self.metrics_port = config.get("metrics_port")
|
||||||
self.metrics_bind_host = config.get("metrics_bind_host", "127.0.0.1")
|
self.metrics_bind_host = config.get("metrics_bind_host", "127.0.0.1")
|
||||||
|
|
||||||
|
self.sentry_enabled = "sentry" in config
|
||||||
|
if self.sentry_enabled:
|
||||||
|
self.sentry_dsn = config["sentry"]["dsn"]
|
||||||
|
|
||||||
def default_config(self, report_stats=None, **kwargs):
|
def default_config(self, report_stats=None, **kwargs):
|
||||||
res = """\
|
res = """\
|
||||||
## Metrics ###
|
## Metrics ###
|
||||||
|
|
||||||
# Enable collection and rendering of performance metrics
|
# Enable collection and rendering of performance metrics
|
||||||
enable_metrics: False
|
enable_metrics: False
|
||||||
|
|
||||||
|
# Enable sentry.io integration
|
||||||
|
#sentry:
|
||||||
|
# dsn: "..."
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if report_stats is None:
|
if report_stats is None:
|
||||||
|
|
|
@ -86,6 +86,7 @@ CONDITIONAL_REQUIREMENTS = {
|
||||||
"saml2": ["pysaml2>=4.5.0"],
|
"saml2": ["pysaml2>=4.5.0"],
|
||||||
"url_preview": ["lxml>=3.5.0"],
|
"url_preview": ["lxml>=3.5.0"],
|
||||||
"test": ["mock>=2.0", "parameterized"],
|
"test": ["mock>=2.0", "parameterized"],
|
||||||
|
"sentry": ["sentry-sdk>=0.7.2"],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue