summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2020-11-10 23:10:12 +0100
committerFabian Mastenbroek <mail.fabianm@gmail.com>2020-11-11 00:20:03 +0100
commit893a575aa3fa5b7b313c63c3a9f1e1523e775565 (patch)
treeb205169330280bc65182e5f8993a455145e01aae
parent5750e4f4eb360ecda39b1568d903e71ae09e141f (diff)
Add support for API error reporting via Sentry
-rw-r--r--api/.gitignore1
-rwxr-xr-xapi/main.py13
-rw-r--r--api/requirements.txt49
-rw-r--r--docker-compose.override.yml2
-rw-r--r--docker-compose.prod.yml2
-rw-r--r--docker-compose.yml2
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