Il monitoraggio in produzione con Sentry

Parole
Marco Bellomo
Immagini
Corinna Stacchini
Tempo di lettura
5

Le potenzialità di un ottimo error tracking

A

Il Bipensiero su server di staging

Dal romanzo di Orwell leggiamo:

“Il bipensiero implica la capacità di accogliere simultaneamente nella propria mente due opinioni tra loro contrastanti, accettandole entrambe.“

E noi interpretiamo:

Opinione rilassata

“il server di staging è completamente sacrificabile, e se lo perdessi completamente, non deve importarmi e posso farci dei test pre produzione in sicurezza, basta usare un corretto sistema di backup, quindi il server di staging è sacrificabile, quindi…”

Opinione stressata

“il server di staging è un elemento imprescindibile e importante, deve essere trattato con cura perché non è dato sapere quando sarà necessario per testare un bug in produzione. Quanto succede su quel server deve essere monitorato e controllato, perché è uno specchio di quello che potrebbe succedere sulla produzione. Specie se cpu e ram sono minori, può mostrarmi cosa succederà quando applicativo sarà sotto stress”

Dato che applichiamo la stessa modalità di pensiero in molti altri ambiti per continuare a vivere, sfruttare questa possibilità creativa anche nella nostra professione non ci porterà per forza alla pazzia.

Monitoraggio

Ma cosa intendiamo per monitoraggio? In realtà questo termine ha svariate spiegazioni, perché per monitorare un sito se ne monitorano vari aspetti.

Facciamo un punto a elenchi (sicuramente non esaustivo) e proviamo ad associare a ogni punto lo strumento di analisi da utilizzare, facendo particolare riferimento a ogni quanto lo usiamo e se è automatizzato.

Se non troviamo un tool utilizzato per uno di questi punti, o se questo tool viene usato in maniera manuale, ecco che abbiamo trovato un punto su cui migliorare. 

  • Visite sul sito e tutte le metriche utili a tracciare il traffico di utenti su quest'ultimo
  • Salute tecnica del sito, ovvero correttezza della sitemap, quali pagine restituiscono uno status 200, quali 301, quali 302 e quali 404, e, se lo fanno, è corretto che lo facciano? 
  • Salute del server, ovvero quanto spazio rimane sul hd della macchina, quanta cpu è utilizzata e quali picchi esistono se esistono, la ram basta o è sotto pressione? 
  • “Velocità" del sito, ovvero le analisi che si possono condurre con page speed e altri strumenti, utili a capire quanto sia piacevole esperienza utente in termini di velocità
  • Correttezza del certificato ssl e tempo utile di scadenza dello stesso
  • Salute generale del codice del sito 

Se sull’ultimo punto non abbiamo associato nessun programma, ecco che questo articolo ci tornerà molto utile 

Cos’è Sentry ? 

Se si cerca su Google la parola Sentry, si trovano, fra pochi altri, due risultati interessanti 

  • Un simpatico personaggio di fantasia, direttamente dal mondo Marvel, che si chiama Bob Reynolds e che da semplice studente con il vizio dell’alcolismo e altri piccoli problemi comportamentali, diventa un potentissimo super eroe
  • Sentry, un programma open source di tracking degli errori del codice.

Il concetto di base dietro Sentry, o comunque dietro uno strumento simile, è che degli errori su un sito o su un servizio di api o altro applicativo web, come ovvio non devono accorgersene gli utenti

Quello che in realtà ancora capita è che 

  1. Un bug lo segnali alla software house o all’agenzia web l’utente finale o l’owner del progetto
  2.  L’agenzia o software intervengono su segnalazione e correggono quando ormai un errore è sfuggito al controllo su staging

Gli errori di codice su sito web/api/applicativo in realtà non vanno solo “corretti” che è la cosa più facile da pensare in certi casi, ma vanno gestiti.

Si deve sapere cioè

  • Quando è capitato la prima volta l’errore
  • Quante volte e quando è capitato
  • Punto del codice che ha prodotto l’ errore

Grazie a questi elementi, si può quindi capire quali possono essere i problemi causati, correggerli in maniera che non capitino più, capire dove intervenire per correggere cattive interazioni dell'utente se necessario. Cosa più interessante ancora, si può compilare un report completo della correzione dell’errore basata su dati reali. 

L’ideale poi, in una corretta gestione del tutto, è poter segnalare un errore al proprio team o a tutti i coinvolti in maniera proattiva, non aspettando passivamente la segnalazione.

Potremo iniziare a sperimentare con un account base su sentry se vorremo, oppure faremo una vostra installazione su un vostro server

Molto utile in una fase di studio delle funzionalità, la demo messa a disposizione 

Naturalmente imprescindibile la guida 

Un'occhiata a Sentry

Diamo un’occhiata veloce alla potenzialità core (a mio avviso)

Entrando sul nostro pannello, potremo vedere i nostri attuali progetti



 Avremo già un’idea della salute dei nostri applicativi, con la percentuale di totale riuscita di ogni aspetto del nostro software, e il numero degli errori divisi in fasce orarie. 

Cliccando su “Issues” vedremo l’elenco dei malfunzionamenti, potremo naturalmente selezionarli a seconda del progetto, e assegnare la revisione e la soluzione a un membro del team.



Molto interessante anche le funzionalità di Alert e di tracciamento dei deploy tramite funzionalità Releases, che permette di capire se un nuovo deploy ha portato a risultati da rivedere, si può per esempio notare se una nuova release fatta apposta per correggere un certo tipo di errore non frequente ha funzionato o no, per esempio.

Come far funzionare la magia

Per implementare tutta questa magia, basterà seguire le istruzioni su per integrare le piattaforme esistenti, tra cui troviamo istruzioni per linguaggi di programmazione come Php, Node.js, Python o framework come Django; non manca il buon Wordpress naturalmente.

Naturalmente sono possibili integrazioni con Slack e altri strumenti, e detto fra noi, c’è molto da esplorare.

Uno strumento versatile, molto ben fatto, e di facile utilizzo per la gestione degli errori sul codice.

Ultimo appunto che mi sento di fare, specie se si ospita Sentry su un proprio server, è che non c’è nessun motivo per non monitorare lo stesso progetto sia su server di produzione che su server di staging. In questa maniera infatti si potranno notare durante lo sviluppo più facilmente anomalie o particolarità, e si potrà testare il codice durante sessioni di stress della macchina di staging, con molti utenti concorrenti.

Analizza la tua presenza online.

Scrivici per una consulenza gratuita



Richiedi consulenza

Marco Bellomo

Chairman

A diciott'anni pensavo che sarei diventato uno scrittore di fama mondiale e che avrei dominato le classifiche con il mio oscuro ciclo fantasy. A ventiquattr'anni pensavo che il PHP fosse immortale. Oggi mi piace non dare nulla per scontato, forse perché ...