Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion inbox/api/err.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class AccountDoesNotExistError(APIException):


def err(http_code, message, **kwargs): # type: ignore[no-untyped-def] # noqa: ANN201
"""Handle unexpected errors, including sending the traceback to Rollbar."""
"""Handle unexpected errors."""
log.exception("API error", user_error_message=message, **kwargs)
resp = {"type": "api_error", "message": message}
resp.update(kwargs)
Expand Down
43 changes: 0 additions & 43 deletions inbox/error_handling.py
Original file line number Diff line number Diff line change
@@ -1,33 +1,16 @@
import json
import logging
import os

import rollbar # type: ignore[import-untyped]
import sentry_sdk
import sentry_sdk.integrations.logging
import sentry_sdk.scrubber
from rollbar.logger import RollbarHandler # type: ignore[import-untyped]

from inbox.constants import ERROR_REPORTING_SCRUB_FIELDS
from inbox.logging import get_logger

log = get_logger()

SENTRY_DSN = os.getenv("SENTRY_DSN", "")
ROLLBAR_API_KEY = os.getenv("ROLLBAR_API_KEY", "")


class SyncEngineRollbarHandler(RollbarHandler):
def emit(self, record): # type: ignore[no-untyped-def] # noqa: ANN201
try:
data = json.loads(record.msg)
except ValueError:
return super().emit(record)

event = data.get("event")
record.payload_data = {"fingerprint": event, "title": event}

return super().emit(record)


GROUP_EXCEPTION_CLASSES = [
Expand Down Expand Up @@ -62,35 +45,9 @@ def payload_handler(payload, **kw): # type: ignore[no-untyped-def] # noqa: ANN


def maybe_enable_error_reporting() -> None:
maybe_enable_rollbar()
maybe_enable_sentry()


def maybe_enable_rollbar() -> None:
if not ROLLBAR_API_KEY:
log.info("ROLLBAR_API_KEY not configured - Rollbar disabled.")
return

application_environment = (
"production" if os.getenv("NYLAS_ENV", "") == "prod" else "dev"
)

rollbar.init(
ROLLBAR_API_KEY,
application_environment,
allow_logging_basic_config=False,
)

rollbar_handler = SyncEngineRollbarHandler()
rollbar_handler.setLevel(logging.ERROR)
logger = logging.getLogger()
logger.addHandler(rollbar_handler)

rollbar.events.add_payload_handler(payload_handler)

log.info("Rollbar enabled")


def maybe_enable_sentry() -> None:
if not SENTRY_DSN:
log.info("SENTRY_DSN not configured - Sentry disabled.")
Expand Down
1 change: 0 additions & 1 deletion requirements/requirements-prod.in
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ redis==5.0.2
regex==2021.11.10
requests==2.32.4
requests-file==1.5.1
rollbar==0.16.2
s3transfer==0.10.3
sentry-sdk<3
setproctitle==1.2.2
Expand Down
5 changes: 0 additions & 5 deletions requirements/requirements-prod.txt
Original file line number Diff line number Diff line change
Expand Up @@ -984,17 +984,13 @@ requests==2.32.4 \
# -r requirements-prod.in
# authalligator-client
# requests-file
# rollbar
# tldextract
requests-file==1.5.1 \
--hash=sha256:07d74208d3389d01c38ab89ef403af0cfec63957d53a0081d8eca738d0247d8e \
--hash=sha256:dfe5dae75c12481f68ba353183c53a65e6044c923e64c24b2209f6c7570ca953
# via
# -r requirements-prod.in
# tldextract
rollbar==0.16.2 \
--hash=sha256:aa3b570062dd8dfb0e11537ba858f9e1633a604680e062a525434b8245540f87
# via -r requirements-prod.in
s3transfer==0.10.3 \
--hash=sha256:263ed587a5803c6c708d3ce44dc4dfedaab4c1a32e8329bab818933d79ddcf5d \
--hash=sha256:4f50ed74ab84d474ce614475e0b8d5047ff080810aac5d01ea25231cfc944b0c
Expand Down Expand Up @@ -1039,7 +1035,6 @@ six==1.16.0 \
# imapclient
# python-dateutil
# requests-file
# rollbar
sqlalchemy==1.4.54 \
--hash=sha256:02d2ecb9508f16ab9c5af466dfe5a88e26adf2e1a8d1c56eb616396ccae2c186 \
--hash=sha256:0b76bbb1cbae618d10679be8966f6d66c94f301cfc15cb49e2f2382563fb6efb \
Expand Down