diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2020-11-10 23:10:12 +0100 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2020-11-11 00:20:03 +0100 |
| commit | 893a575aa3fa5b7b313c63c3a9f1e1523e775565 (patch) | |
| tree | b205169330280bc65182e5f8993a455145e01aae | |
| parent | 5750e4f4eb360ecda39b1568d903e71ae09e141f (diff) | |
Add support for API error reporting via Sentry
| -rw-r--r-- | api/.gitignore | 1 | ||||
| -rwxr-xr-x | api/main.py | 13 | ||||
| -rw-r--r-- | api/requirements.txt | 49 | ||||
| -rw-r--r-- | docker-compose.override.yml | 2 | ||||
| -rw-r--r-- | docker-compose.prod.yml | 2 | ||||
| -rw-r--r-- | docker-compose.yml | 2 |
6 files changed, 59 insertions, 10 deletions
diff --git a/api/.gitignore b/api/.gitignore index fef0da65..0e4f0a70 100644 --- a/api/.gitignore +++ b/api/.gitignore @@ -13,3 +13,4 @@ _mailinglist .idea/ config.json test.json +.env* diff --git a/api/main.py b/api/main.py index 387b516a..1e48ec3f 100755 --- a/api/main.py +++ b/api/main.py @@ -21,6 +21,16 @@ load_dotenv() TEST_MODE = "OPENDC_FLASK_TESTING" in os.environ +# Setup Sentry if DSN is specified +if 'SENTRY_DSN' in os.environ: + import sentry_sdk + from sentry_sdk.integrations.flask import FlaskIntegration + + sentry_sdk.init( + integrations=[FlaskIntegration()], + traces_sample_rate=0.5 + ) + # Set up database if not testing if not TEST_MODE: database.DB.initialize_database( @@ -31,6 +41,7 @@ if not TEST_MODE: # Set up the core app FLASK_CORE_APP = Flask(__name__) +FLASK_CORE_APP.testing = TEST_MODE FLASK_CORE_APP.config['SECRET_KEY'] = os.environ['OPENDC_FLASK_SECRET'] FLASK_CORE_APP.json_encoder = JSONEncoder @@ -168,4 +179,4 @@ def _process_message(message): if __name__ == '__main__': print("Web server started on 8081") - SOCKET_IO_CORE.run(FLASK_CORE_APP, host='0.0.0.0', port=8081) + SOCKET_IO_CORE.run(FLASK_CORE_APP, host='0.0.0.0', port=8081, use_reloader=False) diff --git a/api/requirements.txt b/api/requirements.txt index 0f8c3fcf..e6b4a7aa 100644 --- a/api/requirements.txt +++ b/api/requirements.txt @@ -1,15 +1,46 @@ -flask==1.1.2 -flask-socketio==4.3.1 -oauth2client==4.1.3 +astroid==2.4.2 +attrs==20.3.0 +blinker==1.4 +Brotli==1.0.9 +certifi==2020.11.8 +click==7.1.2 +dnspython==2.0.0 eventlet==0.25.2 -flask-compress==1.5.0 -flask-cors==3.0.8 +Flask==1.1.2 +Flask-Compress==1.5.0 +Flask-Cors==3.0.8 +Flask-SocketIO==4.3.1 +greenlet==0.4.17 +httplib2==0.18.1 +isort==4.3.21 +itsdangerous==1.1.0 +Jinja2==2.11.2 +lazy-object-proxy==1.4.3 +MarkupSafe==1.1.1 +mccabe==0.6.1 +monotonic==1.5 +more-itertools==8.6.0 +oauth2client==4.1.3 +packaging==20.4 +pluggy==0.13.1 +py==1.9.0 +pyasn1==0.4.8 pyasn1-modules==0.2.8 -six==1.15.0 +pylint==2.5.3 pymongo==3.10.1 -yapf==0.30.0 +pyparsing==2.4.7 pytest==5.4.3 -pytest-mock==3.2.0 pytest-env==0.6.2 -pylint==2.5.3 +pytest-mock==3.2.0 python-dotenv==0.14.0 +python-engineio==3.13.2 +python-socketio==4.6.0 +rsa==4.6 +sentry-sdk==0.19.2 +six==1.15.0 +toml==0.10.2 +urllib3==1.26.0 +wcwidth==0.2.5 +Werkzeug==1.0.1 +wrapt==1.12.1 +yapf==0.30.0 diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 8c822c98..4ae19dc6 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -12,6 +12,8 @@ services: api: ports: - "8081:8081" + environment: + SENTRY_ENVIRONMENT: "development" mongo: ports: diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index 63166967..375a4489 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -12,3 +12,5 @@ services: api: ports: - "8081:8081" + environment: + SENTRY_ENVIRONMENT: "production" diff --git a/docker-compose.yml b/docker-compose.yml index c1f5d2d5..7c13c814 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -29,6 +29,8 @@ services: - OPENDC_DB_HOST=mongo - OPENDC_FLASK_SECRET - OPENDC_OAUTH_CLIENT_ID + - SENTRY_DSN=${OPENDC_API_SENTRY_DSN} + - SENTRY_ENVIRONMENT simulator: build: ./simulator |
