sentry: Set environment from machine.deploy_type config.

This allows for greater flexibility in values for "environment," and
avoids having to have duplicate definitions of STAGING in
`zproject/config.py` and `zproject/default_settings.py` (due to import
order restrictions).

It does overload the "deploy type" concept somewhat.

Follow-up to #19185.
This commit is contained in:
Alex Vandiver
2021-07-15 11:32:35 -07:00
committed by Alex Vandiver
parent 3e57d66632
commit 928dc4bafd
3 changed files with 2 additions and 12 deletions

View File

@@ -1185,4 +1185,4 @@ SENTRY_DSN = os.environ.get("SENTRY_DSN", SENTRY_DSN)
if SENTRY_DSN:
from .sentry import setup_sentry
setup_sentry(SENTRY_DSN)
setup_sentry(SENTRY_DSN, get_config("machine", "deploy_type", "development"))

View File

@@ -9,7 +9,6 @@ config_file.read("/etc/zulip/zulip.conf")
# Whether this instance of Zulip is running in a production environment.
PRODUCTION = config_file.has_option("machine", "deploy_type")
STAGING = config_file.get("machine", "deploy_type", fallback="") == "staging"
DEVELOPMENT = not PRODUCTION
secrets_file = configparser.RawConfigParser()

View File

@@ -11,8 +11,6 @@ from sentry_sdk.utils import capture_internal_exceptions
from version import ZULIP_VERSION
from zerver.lib.request import get_request_notes
from .config import PRODUCTION, STAGING
if TYPE_CHECKING:
from sentry_sdk._types import Event, Hint
@@ -58,16 +56,9 @@ def add_context(event: "Event", hint: "Hint") -> Optional["Event"]:
return event
def setup_sentry(dsn: Optional[str]) -> None:
def setup_sentry(dsn: Optional[str], environment: str) -> None:
if not dsn:
return
if PRODUCTION:
if STAGING:
environment = "staging"
else:
environment = "production"
else:
environment = "development"
sentry_sdk.init(
dsn=dsn,
environment=environment,