###########################################
How to configure error tracking with Sentry
###########################################
Sentry is an open-source error tracker service that either can
be rented (SaaS) or `self-hosted `_.
********
Settings
********
The default way of setting up error tracking of Devilry with
Sentry is to use `Sentry's official Django integration `_.
Make sure Sentry's Python SDK is installed in Python environment::
$ venv/bin/pip install --upgrade sentry-sdk
Then initialize the Django integration in the ``devilry_settings.py`` file::
import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration
sentry_sdk.init(
dsn="https://examplePublicKey@o0.ingest.sentry.io/0",
integrations=[DjangoIntegration()],
# Set traces_sample_rate to 1.0 to capture 100%
# of transactions for performance monitoring.
# We recommend adjusting this value in production,
traces_sample_rate=1.0,
# If you wish to associate users to errors (assuming you are using
# django.contrib.auth) you may enable sending PII data.
send_default_pii=True,
# By default the SDK will try to use the SENTRY_RELEASE
# environment variable, or infer a git commit
# SHA as release, however you may want to set
# something more human-readable.
# release="myapp@1.0.0",
)
*****************
Settings (legacy)
*****************
Raven was the `official legacy Python client for Sentry `_
that some legacy Sentry servers might still require.
Make sure Raven is installed in Python environment::
$ venv/bin/pip install raven
Update the ``devilry_settings.py`` file with Sentry project info and add
mapping of Devilry versions::
from devilry import __version__ as devilry_version
(...)
INSTALLED_APPS += ['raven.contrib.django.raven_compat']
RAVEN_CONFIG = {
'dsn': 'https:project_url@sentry.example.com',
'release': devilry_version,
}
***********
Whats next?
***********
After setting up Sentry you might also want to configure Devilry's logging:
- :doc:`logging`.