Logilab bottom bottom right

Collecter les erreurs avec Sentry

Introduction

Meetup Python Nantes - mai 2016

Arthur Lutz (Logilab) @arthurlutz @logilab

Problématiques

  • erreurs silencieuses dans les logs
  • manque de contexte pour reproduire un bug
  • les tests unittaires et d'intégrations continue ne verifient pas tout
  • identifier les disfonctionnements en temps réele
  • accompagner le continuous deployment
  • répartir le travail au sein d'une équipe

Sentry

image

Sentry provides real-time crash reporting for your web apps, mobile
apps, and games.
Sentry fourni des rapports d'erreurs en temps réel pour vos
applications web, mobiles, applications natives et jeux.
  • application django (python)
  • clients en plein de languages de programmation

Sentry - logiciel libre

image

Composants de Sentry

  • postgresql
  • redis
  • celery
  • celery-beat
  • sentry

Sentry dans docker-compose

Docker + docker-compose + docker-compose.yml

http://localhost:9000

Features sentry

  • regroupements
  • assignations
  • moteur de recherche
  • classication des erreurs
  • gestion de version
  • notifications
  • intégration gestion de tickets

Integrations Sentry

image

Integrations Sentry

image

Consultation - projets

image

Consultation - erreurs

image

Consultation - détail d'un erreur

image

Gestion des version

  • Gestion des version deployées, avec
    • possibilité d'indiquer qu'un problème est résolu à la prochaine version
    • possibilité de détecter les regressions
  • Pour l'utiliser :
    • intégrer la version dans le rapport sentry
    • notifier sentry en utilisant l'API de sentry

Autres usages avec Sentry

  • retours d'erreurs python, javascript, nodejs, php, etc.
  • retour de violation de policy CSP
  • User feedback
  • Breadcrumbs
  • pour lire sur certains éléments techniques : blog sentry et blog "inside sentry"

Suite

  • utiliser sentry pour le reporting s'erreurs coté client javascript
  • intégrer la gestion de version comme dans le monitoring
  • amélioration de l'intégration avec CubicWeb
  • utiliser sentry pour collecter les erreurs détectées en intégration continue
  • intégrer la notification XMPP

Fin