Sentry Alert configuration based on production and development environment (#16738)

develop
Zeeshan Rafiq 2023-12-12 21:04:41 +05:00 committed by GitHub
parent e108c31fc0
commit e108cde669
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 1 deletions

View File

@ -0,0 +1 @@
Add new Sentry configuration option `environment` for improved system monitoring. Contributed by @zeeshanrafiqrana.

View File

@ -2779,6 +2779,10 @@ enable_metrics: true
Use this option to enable sentry integration. Provide the DSN assigned to you by sentry Use this option to enable sentry integration. Provide the DSN assigned to you by sentry
with the `dsn` setting. with the `dsn` setting.
An optional `environment` field can be used to specify an environment. This allows
for log maintenance based on different environments, ensuring better organization
and analysis..
NOTE: While attempts are made to ensure that the logs don't contain NOTE: While attempts are made to ensure that the logs don't contain
any sensitive information, this cannot be guaranteed. By enabling any sensitive information, this cannot be guaranteed. By enabling
this option the sentry server may therefore receive sensitive this option the sentry server may therefore receive sensitive
@ -2788,6 +2792,7 @@ through insecure notification channels if so configured.
Example configuration: Example configuration:
```yaml ```yaml
sentry: sentry:
environment: "production"
dsn: "..." dsn: "..."
``` ```
--- ---

View File

@ -665,6 +665,7 @@ def setup_sentry(hs: "HomeServer") -> None:
sentry_sdk.init( sentry_sdk.init(
dsn=hs.config.metrics.sentry_dsn, dsn=hs.config.metrics.sentry_dsn,
release=SYNAPSE_VERSION, release=SYNAPSE_VERSION,
environment=hs.config.metrics.sentry_environment,
) )
# We set some default tags that give some context to this instance # We set some default tags that give some context to this instance

View File

@ -61,6 +61,7 @@ class MetricsConfig(Config):
check_requirements("sentry") check_requirements("sentry")
self.sentry_dsn = config["sentry"].get("dsn") self.sentry_dsn = config["sentry"].get("dsn")
self.sentry_environment = config["sentry"].get("environment")
if not self.sentry_dsn: if not self.sentry_dsn:
raise ConfigError( raise ConfigError(
"sentry.dsn field is required when sentry integration is enabled" "sentry.dsn field is required when sentry integration is enabled"