From c9c7f9d6f958f102143796d9ac6f1db1808bf862 Mon Sep 17 00:00:00 2001 From: burnettk Date: Thu, 27 Oct 2022 10:33:50 -0400 Subject: [PATCH] fewer sentry traces --- src/spiffworkflow_backend/__init__.py | 23 +++++++++++++++------ src/spiffworkflow_backend/config/default.py | 3 ++- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/src/spiffworkflow_backend/__init__.py b/src/spiffworkflow_backend/__init__.py index 6a876723..09ba6012 100644 --- a/src/spiffworkflow_backend/__init__.py +++ b/src/spiffworkflow_backend/__init__.py @@ -157,18 +157,29 @@ def configure_sentry(app: flask.app.Flask) -> None: return None return event - sentry_sample_rate = app.config.get("SENTRY_SAMPLE_RATE") - if sentry_sample_rate is None: - return + sentry_errors_sample_rate = app.config.get("SENTRY_ERRORS_SAMPLE_RATE") + if sentry_errors_sample_rate is None: + raise Exception("SENTRY_ERRORS_SAMPLE_RATE is not set somehow") + + sentry_traces_sample_rate = app.config.get("SENTRY_TRACES_SAMPLE_RATE") + if sentry_traces_sample_rate is None: + raise Exception("SENTRY_TRACES_SAMPLE_RATE is not set somehow") + sentry_sdk.init( dsn=app.config.get("SENTRY_DSN"), integrations=[ FlaskIntegration(), ], environment=app.config["ENV_IDENTIFIER"], - # Set traces_sample_rate to 1.0 to capture 100% + + # sample_rate is the errors sample rate. we usually set it to 1 (100%) + # so we get all errors in sentry. + sample_rate=float(sentry_errors_sample_rate), + + # Set traces_sample_rate to capture a certain percentage # of transactions for performance monitoring. - # We recommend adjusting this value in production. - traces_sample_rate=float(sentry_sample_rate), + # We recommend adjusting this value to less than 1(00%) in production. + traces_sample_rate=float(sentry_traces_sample_rate), + before_send=before_send, ) diff --git a/src/spiffworkflow_backend/config/default.py b/src/spiffworkflow_backend/config/default.py index b108eccb..26f70c95 100644 --- a/src/spiffworkflow_backend/config/default.py +++ b/src/spiffworkflow_backend/config/default.py @@ -47,7 +47,8 @@ SPIFFWORKFLOW_BACKEND_PERMISSIONS_FILE_NAME = environ.get( # Sentry Configuration SENTRY_DSN = environ.get("SENTRY_DSN", default="") -SENTRY_SAMPLE_RATE = environ.get("SENTRY_SAMPLE_RATE", default="1.0") +SENTRY_ERRORS_SAMPLE_RATE = environ.get("SENTRY_ERRORS_SAMPLE_RATE", default="1") # send all errors +SENTRY_TRACES_SAMPLE_RATE = environ.get("SENTRY_TRACES_SAMPLE_RATE", default="0.01") # send 1% of traces SPIFFWORKFLOW_BACKEND_LOG_LEVEL = environ.get( "SPIFFWORKFLOW_BACKEND_LOG_LEVEL", default="info"