Sentry

Sentry è una piattaforma che ci permette di monitorare gli errori delle nostre applicazioni a runtime.
Può essere configurato sia in progetti backend che in progetti frontend.

Nel caso di progetti django risulta complementare alle segnalazioni già prodotte e inviate via mail; diversamente, per progetti frontend (es. vuejs) diventa essenziale perchè si possono cogliere errori generati lato client.

Di seguito un esempio di configurazione di un progetto django sulla piattaforma:

  1. accedere a https://sentry.thux.dev/

  2. creare un nuovo team (se necessario) impostando lo slug del nome del cliente (es. giuffre-francis-lefebvre) e inserire almeno code@thux.it come destinatario delle notifiche

../_images/01.png
  1. creare un nuovo progetto impostando lo slug del nome esatto del progetto che si vuole monitorare preceduto dall’enviroment, es. prod-office2020-progetto-it; indicare anche il team di appartenenza.

../_images/02.png
  1. una volta creato il progetto, prendere nota del codice (DSN) da inserire nel progetto per abilitare sentry

  2. entrare nelle proprietà del progetto e, se il nome indicato in precedenza risultasse tagliato, reinserire lo slug del nome completo

  3. impostare il Subject Prefix, es. [PROD:OFFICE2020.PROGETTO.IT][Sentry]

../_images/03.png
  1. integrare install_requires nel setup.py

sentry-sdk==0.14.1
  1. inserire in prod.py (o in dev.py se stiamo creando la configurazione per il dev) il codice seguente; se in dev.py conviene lasciarla commentata e abilitarla al momento dell’installazione sul server per non spedire notifiche dai nostri sviluppi

 import sentry_sdk
 from sentry_sdk.integrations.django import DjangoIntegration
 SENTRY_DSN_KEY = "https://491fb6a197254e3c815e04b4c25576f1@sentry.thux.dev/14",
 if SENTRY_DSN_KEY:
     sentry_sdk.init(
         dsn=SENTRY_DSN_KEY,
         integrations=[DjangoIntegration()],
         # 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
     )