Sentry

629 vues

Publié le

Sentry est un aggrégateur de log pour Django.
Dans cette présentation, nous allons voir quel peut en être les usages et comment l'utiliser concrètement.

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
629
Sur SlideShare
0
Issues des intégrations
0
Intégrations
4
Actions
Partages
0
Téléchargements
3
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Sentry

  1. 1. Sentry Xavier Ordoquy Freelance Python & Djangolundi 9 avril 12
  2. 2. Sentrylundi 9 avril 12
  3. 3. Qu’est-ce que Sentry ? • Logs applicatifs • Pile d’exécution Python • Client ( Raven ) / Serveur ( Sentry ) • Centralisélundi 9 avril 12
  4. 4. Historique • Développé pour Disqus • 250 serveurs • 4 milliards de pages / mois • Mises en production perpétuelleslundi 9 avril 12
  5. 5. Environnement • Sites Django • Scripts Python • Sites Flask • Autre langages: • PHP • Javalundi 9 avril 12
  6. 6. Architectures • Un serveur, plusieurs sites • Un site, plusieurs serveurs • Des scripts isoléslundi 9 avril 12
  7. 7. Avant Django permet l’envoi de mails : Traceback (most recent call last): File "[..]/django/core/handlers/base.py", line 111, in get_response response = callback(request, *callback_args, **callback_kwargs) File "/sentry_talk/views.py", line 9, in demo total = array1[i]*array2[i] IndexError: list index out of rangelundi 9 avril 12
  8. 8. Avec Sentrylundi 9 avril 12
  9. 9. Problèmes résolus par Sentry • Des fichiers de logs tronqués • Des problèmes difficilement reproductibles • Un centraliseur de logs à mettre en place ( complexité, services différents ).lundi 9 avril 12
  10. 10. Les atouts • Gestion par projet • Filtrages • Pluginslundi 9 avril 12
  11. 11. Projetslundi 9 avril 12
  12. 12. Filtreslundi 9 avril 12
  13. 13. Plugins • Lors d’un évènement : • Mails • Messageries instantanées • Analyse post mortem : • Création d’un bug dans votre outillundi 9 avril 12
  14. 14. Utiliser Sentry • Installation • Mise en place avec : • Django • Python • Logginglundi 9 avril 12
  15. 15. Installer Sentry • $ pip install sentry • $ sentry start OU • http://www.getsentry.com/lundi 9 avril 12
  16. 16. Raven • $ pip install raven • Créer un projet sur sentry • Noter le DSN du projet / serveur • $ raven test <DSN>lundi 9 avril 12
  17. 17. Django Editez votre settings.py : # Set your DSN value SENTRY_DSN = http://xxxx:yyyy@host:8000/5 # Add raven to the list of installed apps INSTALLED_APPS = INSTALLED_APPS + ( # ... raven.contrib.django, )lundi 9 avril 12
  18. 18. Scripts Python from raven import Client client = Client(http://public:secret@example.com/1) try: 1/0 except ZeroDivisionError: ident = client.get_ident(client.captureException()) print "Exception caught; reference is %%s" %% identlundi 9 avril 12
  19. 19. Intégration avec logging import logging from raven.handlers.logging import SentryHandler # Setup logging handler = SentryHandler(http://public:secret@example.com/1) base_logger = logging.getLogger() base_logger.addHandler(handler)lundi 9 avril 12
  20. 20. Logs de base # Log logger = logging.getLogger(‘demo’) logger.warning(‘log de base’)lundi 9 avril 12
  21. 21. Logs avec pile # Log logger = logging.getLogger(‘demo’) logger.warning(log avec pile 2, extra={stack: True})lundi 9 avril 12

×