From 94faed2492a832cb568550adbab7710846428090 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Bedna=C5=99=C3=ADk?= <jan.bednarik@gmail.com>
Date: Thu, 10 Sep 2020 12:17:50 +0200
Subject: [PATCH] majak: Sentry integration

---
 .isort.cfg             |  2 +-
 README.md              |  1 +
 majak/settings/base.py | 11 +++++++++++
 requirements/base.in   |  1 +
 requirements/base.txt  |  5 +++--
 5 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/.isort.cfg b/.isort.cfg
index d5b27543a..40051662f 100644
--- a/.isort.cfg
+++ b/.isort.cfg
@@ -4,4 +4,4 @@ line_length = 88
 multi_line_output = 3
 default_sectiont = "THIRDPARTY"
 include_trailing_comma = true
-known_third_party = arrow,django,environ,faker,ics,modelcluster,pirates,pytest,pytz,requests,snapshottest,taggit,wagtail,wagtailmetadata
+known_third_party = arrow,django,environ,faker,ics,modelcluster,pirates,pytest,pytz,requests,sentry_sdk,snapshottest,taggit,wagtail,wagtailmetadata
diff --git a/README.md b/README.md
index a54ad214b..cffb51fba 100644
--- a/README.md
+++ b/README.md
@@ -84,6 +84,7 @@ Různé:
 | proměnná | default | popis |
 | --- | --- | --- |
 | `MAJAK_ENV` | prod | `prod`/`test`/`dev` prostředí kde Maják běží |
+| `SENTRY_DSN` | | pokud je zadáno, pády se reportují do Sentry |
 
 Settings pro appky na weby:
 
diff --git a/majak/settings/base.py b/majak/settings/base.py
index 1c6158757..9e4003c47 100644
--- a/majak/settings/base.py
+++ b/majak/settings/base.py
@@ -2,6 +2,8 @@ from os.path import join
 from pathlib import Path
 
 import environ
+import sentry_sdk
+from sentry_sdk.integrations.django import DjangoIntegration
 
 ROOT_DIR = Path(__file__).parents[2]
 PROJECT_DIR = ROOT_DIR / "majak"
@@ -179,6 +181,15 @@ CACHES = {
 CACHES["default"]["TIMEOUT"] = 60 * 60 * 24
 CACHES["renditions"]["TIMEOUT"] = 60 * 60 * 24
 
+# SENTRY
+# ------------------------------------------------------------------------------
+
+SENTRY_DSN = env.str("SENTRY_DSN", default="")
+if SENTRY_DSN:
+    sentry_sdk.init(
+        dsn=SENTRY_DSN, integrations=[DjangoIntegration()], send_default_pii=True,
+    )
+
 # WAGTAIL SETTINGS
 # ------------------------------------------------------------------------------
 WAGTAIL_SITE_NAME = "Maják"
diff --git a/requirements/base.in b/requirements/base.in
index 9db5f6238..1d5c103d1 100644
--- a/requirements/base.in
+++ b/requirements/base.in
@@ -11,3 +11,4 @@ opencv-python
 requests
 ics
 arrow
+sentry-sdk
diff --git a/requirements/base.txt b/requirements/base.txt
index 22a5e1718..cb3646dd5 100644
--- a/requirements/base.txt
+++ b/requirements/base.txt
@@ -7,7 +7,7 @@
 arrow==0.14.7             # via -r base.in, ics
 asgiref==3.2.10           # via django
 beautifulsoup4==4.8.2     # via wagtail
-certifi==2020.6.20        # via requests
+certifi==2020.6.20        # via requests, sentry-sdk
 cffi==1.14.2              # via cryptography
 chardet==3.0.4            # via requests
 cryptography==3.1         # via josepy, mozilla-django-oidc, pyopenssl
@@ -45,13 +45,14 @@ python-ldap==3.3.1        # via pirates
 pytz==2020.1              # via django, django-modelcluster, l18n
 redis==3.5.3              # via django-redis
 requests==2.24.0          # via -r base.in, mozilla-django-oidc, wagtail
+sentry-sdk==0.17.4        # via -r base.in
 six==1.15.0               # via cryptography, html5lib, ics, josepy, l18n, mozilla-django-oidc, pyopenssl, python-dateutil
 soupsieve==2.0.1          # via beautifulsoup4
 sqlparse==0.3.1           # via django
 tablib[xls,xlsx]==2.0.0   # via wagtail
 tatsu==5.5.0              # via ics
 unidecode==1.1.1          # via wagtail
-urllib3==1.25.10          # via requests
+urllib3==1.25.10          # via requests, sentry-sdk
 wagtail-metadata==3.3.0   # via -r base.in
 wagtail==2.10.1           # via -r base.in, wagtail-metadata
 webencodings==0.5.1       # via html5lib
-- 
GitLab