mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-11-04 07:05:41 +00:00 
			
		
		
		
	Django q sentry (#4296)
* add requirement for django-q-sentry * Add sentry integration for django-q
This commit is contained in:
		@@ -542,6 +542,33 @@ DATABASES = {
 | 
				
			|||||||
    'default': db_config
 | 
					    'default': db_config
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# login settings
 | 
				
			||||||
 | 
					REMOTE_LOGIN = get_boolean_setting('INVENTREE_REMOTE_LOGIN', 'remote_login_enabled', False)
 | 
				
			||||||
 | 
					REMOTE_LOGIN_HEADER = get_setting('INVENTREE_REMOTE_LOGIN_HEADER', 'remote_login_header', 'REMOTE_USER')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# sentry.io integration for error reporting
 | 
				
			||||||
 | 
					SENTRY_ENABLED = get_boolean_setting('INVENTREE_SENTRY_ENABLED', 'sentry_enabled', False)
 | 
				
			||||||
 | 
					# Default Sentry DSN (can be overriden if user wants custom sentry integration)
 | 
				
			||||||
 | 
					INVENTREE_DSN = 'https://3928ccdba1d34895abde28031fd00100@o378676.ingest.sentry.io/6494600'
 | 
				
			||||||
 | 
					SENTRY_DSN = get_setting('INVENTREE_SENTRY_DSN', 'sentry_dsn', INVENTREE_DSN)
 | 
				
			||||||
 | 
					SENTRY_SAMPLE_RATE = float(get_setting('INVENTREE_SENTRY_SAMPLE_RATE', 'sentry_sample_rate', 0.1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if SENTRY_ENABLED and SENTRY_DSN:  # pragma: no cover
 | 
				
			||||||
 | 
					    sentry_sdk.init(
 | 
				
			||||||
 | 
					        dsn=SENTRY_DSN,
 | 
				
			||||||
 | 
					        integrations=[DjangoIntegration(), ],
 | 
				
			||||||
 | 
					        traces_sample_rate=1.0 if DEBUG else SENTRY_SAMPLE_RATE,
 | 
				
			||||||
 | 
					        send_default_pii=True
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    inventree_tags = {
 | 
				
			||||||
 | 
					        'testing': TESTING,
 | 
				
			||||||
 | 
					        'docker': DOCKER,
 | 
				
			||||||
 | 
					        'debug': DEBUG,
 | 
				
			||||||
 | 
					        'remote': REMOTE_LOGIN,
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    for key, val in inventree_tags.items():
 | 
				
			||||||
 | 
					        sentry_sdk.set_tag(f'inventree_{key}', val)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Cache configuration
 | 
					# Cache configuration
 | 
				
			||||||
cache_host = get_setting('INVENTREE_CACHE_HOST', 'cache.host', None)
 | 
					cache_host = get_setting('INVENTREE_CACHE_HOST', 'cache.host', None)
 | 
				
			||||||
cache_port = get_setting('INVENTREE_CACHE_PORT', 'cache.port', '6379', typecast=int)
 | 
					cache_port = get_setting('INVENTREE_CACHE_PORT', 'cache.port', '6379', typecast=int)
 | 
				
			||||||
@@ -604,6 +631,14 @@ Q_CLUSTER = {
 | 
				
			|||||||
    'sync': False,
 | 
					    'sync': False,
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Configure django-q sentry integration
 | 
				
			||||||
 | 
					if SENTRY_ENABLED and SENTRY_DSN:
 | 
				
			||||||
 | 
					    Q_CLUSTER['error_reporter'] = {
 | 
				
			||||||
 | 
					        'sentry': {
 | 
				
			||||||
 | 
					            'dsn': SENTRY_DSN
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if cache_host:  # pragma: no cover
 | 
					if cache_host:  # pragma: no cover
 | 
				
			||||||
    # If using external redis cache, make the cache the broker for Django Q
 | 
					    # If using external redis cache, make the cache the broker for Django Q
 | 
				
			||||||
    # as well
 | 
					    # as well
 | 
				
			||||||
@@ -792,10 +827,6 @@ ACCOUNT_FORMS = {
 | 
				
			|||||||
SOCIALACCOUNT_ADAPTER = 'InvenTree.forms.CustomSocialAccountAdapter'
 | 
					SOCIALACCOUNT_ADAPTER = 'InvenTree.forms.CustomSocialAccountAdapter'
 | 
				
			||||||
ACCOUNT_ADAPTER = 'InvenTree.forms.CustomAccountAdapter'
 | 
					ACCOUNT_ADAPTER = 'InvenTree.forms.CustomAccountAdapter'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# login settings
 | 
					 | 
				
			||||||
REMOTE_LOGIN = get_boolean_setting('INVENTREE_REMOTE_LOGIN', 'remote_login_enabled', False)
 | 
					 | 
				
			||||||
REMOTE_LOGIN_HEADER = get_setting('INVENTREE_REMOTE_LOGIN_HEADER', 'remote_login_header', 'REMOTE_USER')
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Markdownify configuration
 | 
					# Markdownify configuration
 | 
				
			||||||
# Ref: https://django-markdownify.readthedocs.io/en/latest/settings.html
 | 
					# Ref: https://django-markdownify.readthedocs.io/en/latest/settings.html
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -834,29 +865,6 @@ MARKDOWNIFY = {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# sentry.io integration for error reporting
 | 
					 | 
				
			||||||
SENTRY_ENABLED = get_boolean_setting('INVENTREE_SENTRY_ENABLED', 'sentry_enabled', False)
 | 
					 | 
				
			||||||
# Default Sentry DSN (can be overriden if user wants custom sentry integration)
 | 
					 | 
				
			||||||
INVENTREE_DSN = 'https://3928ccdba1d34895abde28031fd00100@o378676.ingest.sentry.io/6494600'
 | 
					 | 
				
			||||||
SENTRY_DSN = get_setting('INVENTREE_SENTRY_DSN', 'sentry_dsn', INVENTREE_DSN)
 | 
					 | 
				
			||||||
SENTRY_SAMPLE_RATE = float(get_setting('INVENTREE_SENTRY_SAMPLE_RATE', 'sentry_sample_rate', 0.1))
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if SENTRY_ENABLED and SENTRY_DSN:  # pragma: no cover
 | 
					 | 
				
			||||||
    sentry_sdk.init(
 | 
					 | 
				
			||||||
        dsn=SENTRY_DSN,
 | 
					 | 
				
			||||||
        integrations=[DjangoIntegration(), ],
 | 
					 | 
				
			||||||
        traces_sample_rate=1.0 if DEBUG else SENTRY_SAMPLE_RATE,
 | 
					 | 
				
			||||||
        send_default_pii=True
 | 
					 | 
				
			||||||
    )
 | 
					 | 
				
			||||||
    inventree_tags = {
 | 
					 | 
				
			||||||
        'testing': TESTING,
 | 
					 | 
				
			||||||
        'docker': DOCKER,
 | 
					 | 
				
			||||||
        'debug': DEBUG,
 | 
					 | 
				
			||||||
        'remote': REMOTE_LOGIN,
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    for key, val in inventree_tags.items():
 | 
					 | 
				
			||||||
        sentry_sdk.set_tag(f'inventree_{key}', val)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Ignore these error typeps for in-database error logging
 | 
					# Ignore these error typeps for in-database error logging
 | 
				
			||||||
IGNORED_ERRORS = [
 | 
					IGNORED_ERRORS = [
 | 
				
			||||||
    Http404,
 | 
					    Http404,
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,6 +19,7 @@ django-money<3.0.0                      # Django app for currency management  #
 | 
				
			|||||||
django-mptt==0.11.0                     # Modified Preorder Tree Traversal
 | 
					django-mptt==0.11.0                     # Modified Preorder Tree Traversal
 | 
				
			||||||
django-redis>=5.0.0                     # Redis integration
 | 
					django-redis>=5.0.0                     # Redis integration
 | 
				
			||||||
django-q                                # Background task scheduling
 | 
					django-q                                # Background task scheduling
 | 
				
			||||||
 | 
					django-q-sentry                         # sentry.io integration for django-q
 | 
				
			||||||
django-sql-utils                        # Advanced query annotation / aggregation
 | 
					django-sql-utils                        # Advanced query annotation / aggregation
 | 
				
			||||||
django-sslserver                        # Secure HTTP development server
 | 
					django-sslserver                        # Secure HTTP development server
 | 
				
			||||||
django-stdimage<6.0.0                   # Advanced ImageField management  # FIXED 2022-06-29 6.0.0 breaks serialization for django-q
 | 
					django-stdimage<6.0.0                   # Advanced ImageField management  # FIXED 2022-06-29 6.0.0 breaks serialization for django-q
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -110,6 +110,8 @@ django-picklefield==3.1
 | 
				
			|||||||
    # via django-q
 | 
					    # via django-q
 | 
				
			||||||
django-q==1.3.9
 | 
					django-q==1.3.9
 | 
				
			||||||
    # via -r requirements.in
 | 
					    # via -r requirements.in
 | 
				
			||||||
 | 
					django-q-sentry==0.1.6
 | 
				
			||||||
 | 
					    # via -r requirements.in
 | 
				
			||||||
django-recurrence==1.11.1
 | 
					django-recurrence==1.11.1
 | 
				
			||||||
    # via django-ical
 | 
					    # via django-ical
 | 
				
			||||||
django-redis==5.2.0
 | 
					django-redis==5.2.0
 | 
				
			||||||
@@ -222,7 +224,9 @@ requests==2.28.1
 | 
				
			|||||||
requests-oauthlib==1.3.1
 | 
					requests-oauthlib==1.3.1
 | 
				
			||||||
    # via django-allauth
 | 
					    # via django-allauth
 | 
				
			||||||
sentry-sdk==1.12.1
 | 
					sentry-sdk==1.12.1
 | 
				
			||||||
    # via -r requirements.in
 | 
					    # via
 | 
				
			||||||
 | 
					    #   -r requirements.in
 | 
				
			||||||
 | 
					    #   django-q-sentry
 | 
				
			||||||
sgmllib3k==1.0.0
 | 
					sgmllib3k==1.0.0
 | 
				
			||||||
    # via feedparser
 | 
					    # via feedparser
 | 
				
			||||||
six==1.16.0
 | 
					six==1.16.0
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user