From 1ef54495d9abf72f5beb2b655c9c4116a9ee7c03 Mon Sep 17 00:00:00 2001 From: Dmitriy Lyalyuev Date: Mon, 7 Nov 2022 12:24:35 +0300 Subject: [PATCH] add airbrake errors catcher --- later42/settings.py | 28 ++++++++++++++++++++++++++++ later42/tasks.py | 10 ++++++++++ requirements.txt | 1 + 3 files changed, 39 insertions(+) diff --git a/later42/settings.py b/later42/settings.py index a4881ca..bc2b395 100644 --- a/later42/settings.py +++ b/later42/settings.py @@ -177,3 +177,31 @@ EMAIL_HOST_USER = os.getenv('EMAIL_HOST_USER', None) EMAIL_HOST_PASSWORD = os.getenv('EMAIL_HOST_PASSWORD', None) EMAIL_PORT = os.getenv('EMAIL_PORT', '25') EMAIL_FROM = os.getenv('EMAIL_FROM', 'noreply@later42.com') + + +AIRBRAKE = dict( + project_id=os.getenv('AIRBRAKE_PROJECT_ID', 462604), + project_key=os.getenv('AIRBRAKE_PROJECT_KEY', None), + environment=os.getenv('AIRBRAKE_ENVIRONMENT', 'development'), +) + +if AIRBRAKE['project_key'] is not None: + MIDDLEWARE += ['pybrake.middleware.django.AirbrakeMiddleware'] + + LOGGING = { + 'version': 1, + 'disable_existing_loggers': False, + 'handlers': { + 'airbrake': { + 'level': 'ERROR', + 'class': 'pybrake.LoggingHandler', + }, + }, + 'loggers': { + 'app': { + 'handlers': ['airbrake'], + 'level': 'ERROR', + 'propagate': True, + }, + }, + } diff --git a/later42/tasks.py b/later42/tasks.py index b764e25..4b5a014 100644 --- a/later42/tasks.py +++ b/later42/tasks.py @@ -1,8 +1,18 @@ +import os +import pybrake from celery import shared_task +from pybrake.middleware.celery import patch_celery from later42.models.urls import URL from later42.models.article import Article from later42.libs.content import get_content +notifier = pybrake.Notifier( + project_id=os.getenv('AIRBRAKE_PROJECT_ID'), + project_key=os.getenv('AIRBRAKE_PROJECT_KEY'), + environment="celery" +) +patch_celery(notifier) + @shared_task() def get_url_content_task(id): diff --git a/requirements.txt b/requirements.txt index 30efd41..9a8c9ab 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,3 +8,4 @@ whitenoise==6.2.0 psycopg2-binary==2.9.4 six==1.16.0 celery[redis]==5.2.7 +pybrake==1.10.0