Add Sentry (#96)

This commit is contained in:
Erik Vroon
2023-01-21 07:21:25 -08:00
committed by GitHub
parent 7309cdc757
commit d9f7efa3df
4 changed files with 20 additions and 2 deletions

View File

@@ -24,6 +24,7 @@ pyjwt = ">=2.6.0"
click = ">=8.1.3"
python-multipart = ">=0.0.5"
parameterized = ">=0.8.1"
sentry-sdk = ">=1.13.0"
[dev-packages]
mypy = ">=0.991"

View File

@@ -2,10 +2,13 @@ from fastapi import FastAPI
from starlette.middleware.cors import CORSMiddleware
from starlette.staticfiles import StaticFiles
from bracket.config import Environment, config, environment
from bracket.config import Environment, config, environment, init_sentry
from bracket.database import database, init_db_when_empty
from bracket.routes import auth, clubs, matches, players, rounds, teams, tournaments
init_sentry()
app = FastAPI(
title="Bracket API",
docs_url="/docs",

View File

@@ -2,6 +2,7 @@ import logging
import os
from enum import auto
import sentry_sdk
from pydantic import BaseSettings, PostgresDsn
from bracket.utils.types import EnumAutoStr
@@ -10,6 +11,7 @@ from bracket.utils.types import EnumAutoStr
class Environment(EnumAutoStr):
PRODUCTION = auto()
DEVELOPMENT = auto()
DEMO = auto()
CI = auto()
def get_env_filepath(self) -> str:
@@ -17,6 +19,7 @@ class Environment(EnumAutoStr):
Environment.PRODUCTION: 'prod.env',
Environment.DEVELOPMENT: 'dev.env',
Environment.CI: 'ci.env',
Environment.DEMO: 'demo.env',
}[self]
def get_log_level(self) -> int:
@@ -24,6 +27,7 @@ class Environment(EnumAutoStr):
Environment.CI: logging.WARNING,
Environment.DEVELOPMENT: logging.DEBUG,
Environment.PRODUCTION: logging.INFO,
Environment.DEMO: logging.INFO,
}[self]
@@ -34,7 +38,17 @@ class Config(BaseSettings):
cors_origin_regex: str = ''
admin_email: str | None = None
admin_password: str | None = None
sentry_dsn: str | None = None
environment = Environment(os.getenv('ENVIRONMENT', 'DEVELOPMENT'))
config = Config(_env_file=environment.get_env_filepath())
def init_sentry() -> None:
if config.sentry_dsn:
sentry_sdk.init(
dsn=config.sentry_dsn,
environment=str(environment.value),
with_locals=False,
)

View File

@@ -3,6 +3,6 @@ set -evo pipefail
black .
dmypy run -- --follow-imports=normal --junit-xml= .
ENVIRONMENT=CI pytest --cov --cov-report=xml .
SQLALCHEMY_SILENCE_UBER_WARNING=1 ENVIRONMENT=CI pytest --cov --cov-report=xml .
pylint alembic bracket tests
isort .