Sentry Django tətbiqinin tutulmamış istisnalarını toplayır, onları issue-lara qruplaşdırır, kontekst (istifadəçi, sorğu, release, breadcrumbs) əlavə edir və komandaya xəbər verir. Bu dərsdə sentry-sdk-nı qoşacaq və istehsal üçün tənzimləyəcəyik.

Sentry loglara nə əlavə edir

Log sətri nəyinsə sınmasını bildirir. Sentry isə hər unikal xəta üçün bir issue, neçə istifadəçiyə təsir etdiyini, hansı release-də başladığını, lokal dəyişənlərlə traceback-i və e-poçt və ya Slack bildirişi verir. İkisini birgə istifadə edin: hekayə üçün loglar, həyəcan siqnalı üçün Sentry (bax Django-da logging).

Xəta Sentry-yə necə çatır
Xəta Sentry-yə necə çatır

Quraşdırma və init

bash
pip install "sentry-sdk[django]"

Sentry-də layihə yaradın, DSN-i kopyalayın və init-i settings.py-in əvvəlində çağırın. Django quraşdırılıbsa, inteqrasiya avtomatik aktivləşir; onu açıq ötürsəniz transaction_style kimi seçimlər təyin edə bilərsiniz.

python
# settings.py
import os

import sentry_sdk
from sentry_sdk.integrations.django import DjangoIntegration

sentry_sdk.init(
    dsn=os.environ.get('SENTRY_DSN'),          # None -> SDK stays off
    environment=os.environ.get('SENTRY_ENVIRONMENT', 'development'),
    release=os.environ.get('GIT_SHA'),
    integrations=[DjangoIntegration(transaction_style='url')],
    traces_sample_rate=0.1,
    send_default_pii=False,
)

SENTRY_DSN yoxdursa SDK sönülü qalır və lokal inkişaf heç nə göndərmir. SDK həmçinin SENTRY_DSN, SENTRY_ENVIRONMENT və SENTRY_RELEASE-i mühitdən özü oxuyur.

Test xətası ilə yoxlama