diff --git a/docs/admin/config.rst b/docs/admin/config.rst index 4dd21a09f9bf..c455734e7b72 100644 --- a/docs/admin/config.rst +++ b/docs/admin/config.rst @@ -1645,6 +1645,15 @@ Configures environment for Sentry. Defaults to ``devel``. .. setting:: SENTRY_PROFILES_SAMPLE_RATE +SENTRY_KEEP_ALIVE +----------------- + +Configures Sentry to keep the connection alive between requests. Defaults to ``False``. + +.. seealso:: + + `Sentry Basic Options `_ + SENTRY_PROFILES_SAMPLE_RATE --------------------------- diff --git a/docs/admin/install/docker.rst b/docs/admin/install/docker.rst index 0256f32f2193..e57c72f2de2f 100644 --- a/docs/admin/install/docker.rst +++ b/docs/admin/install/docker.rst @@ -1685,6 +1685,10 @@ To enable support for Sentry, set following: Your Sentry Environment (optional), defaults to :envvar:`WEBLATE_SITE_DOMAIN`. +.. envvar:: SENTRY_KEEP_ALIVE + + Configures :setting:`SENTRY_KEEP_ALIVE`. + .. envvar:: SENTRY_TRACES_SAMPLE_RATE Configures :setting:`SENTRY_TRACES_SAMPLE_RATE`. diff --git a/weblate/settings_docker.py b/weblate/settings_docker.py index d7d148787abb..b4adb4f0a8b6 100644 --- a/weblate/settings_docker.py +++ b/weblate/settings_docker.py @@ -1386,6 +1386,7 @@ GOOGLE_ANALYTICS_ID = get_env_str("WEBLATE_GOOGLE_ANALYTICS_ID") SENTRY_DSN = get_env_str("SENTRY_DSN") SENTRY_ENVIRONMENT = get_env_str("SENTRY_ENVIRONMENT", SITE_DOMAIN) +SENTRY_KEEP_ALIVE = get_env_bool("SENTRY_KEEP_ALIVE", False) SENTRY_TRACES_SAMPLE_RATE = get_env_float("SENTRY_TRACES_SAMPLE_RATE") SENTRY_PROFILES_SAMPLE_RATE = get_env_float("SENTRY_PROFILES_SAMPLE_RATE", 1.0) SENTRY_TOKEN = get_env_str("SENTRY_TOKEN") diff --git a/weblate/utils/errors.py b/weblate/utils/errors.py index 76c79b44753a..1302a79bcde7 100644 --- a/weblate/utils/errors.py +++ b/weblate/utils/errors.py @@ -122,6 +122,7 @@ def init_error_collection(celery=False) -> None: ], attach_stacktrace=True, _experiments={"max_spans": 2000}, + keep_alive=settings.SENTRY_KEEP_ALIVE, **settings.SENTRY_EXTRA_ARGS, ) # Ignore Weblate logging, those should trigger proper errors diff --git a/weblate/utils/models.py b/weblate/utils/models.py index 64b07506fd85..65e9905a0818 100644 --- a/weblate/utils/models.py +++ b/weblate/utils/models.py @@ -54,6 +54,7 @@ class WeblateConf(AppConf): SENTRY_EXTRA_ARGS = {} SENTRY_TRACES_SAMPLE_RATE = 0 SENTRY_PROFILES_SAMPLE_RATE = 0 + SENTRY_KEEP_ALIVE = False CELERY_TASK_ALWAYS_EAGER = True CELERY_BROKER_URL = "memory://"