Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un comptelive_helpToutes les questions

Beachmountains
18 mars 2025
Résolue
3 réponses
Choix du framework pour Sentry
Bonjour,
pour avertir que sur sentry ,il y'a une obligation de créer un framework.
J'ai hésite entre Flask et Django?
merci

00:00:00 :Dans cette partie, on va boucler notre script en rajoutant un utilitaire qui est bien pratique.Il y en a plusieurs qui l'utilisent. Là, il n'y a aucun sponsor ou lien d'affiliation dans cette partie.
00:00:10 :C'est Sentry que j'utilise, que j'aime beaucoup, que j'utilise sur Dockstring.Vous pouvez voir que j'ai le projet ici avec un bon taux de ce qu'on appelle les crash free sessions,donc des sessions sans aucun problème. Donc on est presque à 100% ici.
00:00:23 :Ça me permet ici, dans le cas de Dockstring, de récupérer tous les problèmes, toutes les erreurs qu'il y a sur le site.Donc dès qu'on a une erreur qui est levée sur le projet Django, j'ai un historique ici des erreurs.
00:00:33 :Je peux les marquer comme résolues, en attente, etc.Ça me permet d'avoir un historique et un suivi des erreurs à régler.Donc sur l'interface, je vous laisse créer un compte.
00:00:42 :Vous allez avoir pas mal de latitude avec la version gratuite déjà,qui vous permet de reporter un bon nombre d'erreurs.Moi, pour Dockstring, pour vous donner une idée, je suis encore sur le plan gratuit.
00:00:52 :Je n'ai pas eu besoin de payer quoi que ce soit depuis les nombreuses années que je l'utilise.Donc ce qu'on va faire, c'est dans les projets créer un nouveau projetet ensuite on va installer les bibliothèques nécessaires dans notre projet.
00:01:03 :Et ce que ça va faire, c'est que ça va nous permettre d'être averti quand il y a des erreurs.Vous allez voir qu'on peut également lier Pushover,donc le fameux Pushover qu'on utilise pour recevoir les alertes de prix.
00:01:13 :On peut également le lier ici pour avoir une alerte sur notre téléphone quand il y a une erreur.C'est là encore quelque chose que j'utilise sur Dockstring.
00:01:19 :Donc quand il y a une erreur critique sur le site, je reçois une alerte directement sur mon téléphonequi va bypasser tous les modes de non-dérangement.
00:01:27 :Donc à part le mode avion, bien sûr qu'on ne peut pas aller au-dessus du mode avion,mais quand je suis en ne pas déranger, ça va quand même passer par-dessusparce que j'ai mis une alerte spécifique sur Pushover qui va passer à travers ces notifications.
00:01:42 :Donc ici, quand on va créer notre projet, on va choisir ce qu'on veut.Vous voyez que vous avez des configurations directement pour des services bien connuscomme Django, FastAPI, Flask, même du React ou d'autres choses hors de l'écosystème Python.
00:01:54 :Nous, c'est juste un script Python, donc on va sélectionner Python ici.On va dire de m'alerter sur chaque nouvelle issue et je vais l'appeler ici,donc je vais donner un nom, on va dire Ecom Notifier dans la team Dockstring.
00:02:06 :Donc je crée le projet. Est-ce qu'on utilise un framework ? Non, c'est du Python pur.On utilise Request, mais ce n'est pas un framework, c'est juste une bibliothèque, donc je fais Skip.
00:02:16 :Et là, on va voir le code à utiliser, notamment l'installation du SDK.Je vais copier le code ici et je vais retourner dans mon PyCharm pour l'installer.
00:02:26 :Dans le terminal ici, je vais coller cette ligne pour installer le Sentry SDKet on va aller copier les lignes qu'on a ici.De nouveau, je copie et je vais mettre ça tout en haut de mon script pour avoir le loggeur de Sentry.
00:02:39 :Je le mets ici, Import Sentry SDK.Là, je vais enlever les commentaires pour enlever les lignes inutiles.Et là, on a une longue adresse que vous pouvez également rajouter si vous le souhaitez à l'intérieur de votre fichier d'environnement.
00:02:51 :Donc on peut faire ici OS Environ et mettre par exemple Sentry DNSet puis mettre cette valeur dans le fichier d'environnement si vous voulez la protéger également,même si ce n'est pas des choses très critiques ici.
00:03:02 :Mais bon, c'est quand même mieux, je pense, parce que quelqu'un pourrait utiliser cette URLpour la mettre dans son propre projet et vous causer du trouble en envoyant des logs qui n'ont rien à faire ici.
00:03:12 :Donc moi, je vais le laisser comme ça ici et on va faire un test.Donc le test qui nous conseille de faire d'ailleurs, je crois, c'est de faire une division par zéro.
00:03:19 :Donc ici, à la place de faire le main, on va tout simplement faire un divisé par zéroet on va lancer le script pour vérifier qu'on a bien l'erreur qui est logée.
00:03:27 :Donc je vais aller ici dans Take me to issues.On va cliquer ici pour avoir les updates en real time.Donc je vais mettre ça à droite de mon écran, je vais mettre ça à gauche.
00:03:37 :Je lance le script et là, normalement, on a la zero division error,Sentry attempting to send two pending events.Donc on va revenir ici et ça devrait apparaître dans peu de tempspour nous avertir qu'il y a eu un problème dans notre script.
00:03:51 :Et voilà, vous voyez que c'est assez rapide.Il nous dit qu'il y a 16 secondes, donc c'est précis.Ça fait à peu près effectivement 15 secondes que j'ai lancé le scriptet on voit ici toutes les informations qu'on a besoin.
00:04:01 :On a le boot code qui pose problème.On a plein d'autres informations comme la variable filequi nous permet de voir quel est le fichier qui a déclenché l'erreur,le module, etc.
00:04:09 :Donc plein d'informations importantes ici.On voit le nom de l'erreur.On voit des variables d'environnement aussi,quelle version de Python est utilisée.Donc Sentry, c'est vraiment très très bien pour ça.
00:04:18 :Vous pouvez analyser très finement ce qui se passeet une fois que le problème est résolu, on peut le sélectionneret cliquer sur Resolve pour dire que le problème n'est plus un problème actif.
00:04:27 :Et si je rafraîchis la page ici, vous allez voir que le problème aura disparupuisque là on filtre seulement les éléments qui ont été unresolved.
00:04:34 :Donc c'est parfait, ça marche bien et je vais pouvoir enlever cette division par zéro,remettre mon main ici et envoyer de nouveau mon script sur mon serveur.
00:04:46 :Donc je vais ouvrir un nouveau terminal,je vais me redéplacer dans Documents, Icon Notifieret on va refaire un SCP.On va refaire déjà le pip freeze.
00:04:54 :Donc je vais sourcer mon environnement.Ensuite on va faire un pip freeze dans le requirements.txtpour ajouter les bibliothèques de Sentry.Et ensuite on va faire un SCP de Requirementset on va faire un SCP de notre main.py qu'on a changé également.
00:05:11 :Donc si je reviens là après dans le Icon,on va faire un pip install de Rrequirementsen ayant bien activé notre environnement virtuel.Donc c'était déjà le cas, donc c'est bon.
00:05:22 :Il a bien détecté Sentry, il l'a installéet si je vais voir mon main.py,on devrait bien avoir, si je reviens au-dessus,le Sentry SDK.
00:05:29 :Donc ça fonctionne parfaitementet je peux désormais réactiver mon script dans l'écran de tabet avoir cette gestion des erreurs avec Sentryqui me permet d'être averti s'il y a un problème.
00:05:39 :Vous pouvez aussi aller voir dans les settings ici,vous allez avoir des intégrations.Donc si je vais dans l'intégration,vous allez voir que moi j'ai Pushover qui est déjà activéet qui est ajouté à mon projet Doctrine.
00:05:50 :Donc là vous pouvez cliquer sur Add to Projectpour l'ajouter à un autre projetcomme Ecom Notifier qu'on vient de créeret il suffira ici d'ajouter,comme on l'a fait pour envoyer des alertes,le User Key, le API Key,donc une autre application que vous pouvez fairepour envoyer des alertes.
00:06:05 :Vous pouvez utiliser la même que vous avez utilisépour faire l'envoi d'alertes de notre applicationmais vous pouvez aussi en faire une autreet là comme ça vous aurez automatiquementdes alertes envoyées via Pushoverquand il y a un problème sur votre site.
00:06:19 :Donc voilà, on arrive à la fin.Il ne me reste plus qu'une chose à tester,c'est quand même que le script continue de fonctionner bien.
00:06:25 :Donc ce que je vais faire en fait,c'est modifier le prix ici.Donc là encore je vais utiliser Vimpour modifier la dernière valeur qu'on a.
00:06:32 :Donc je descends un petit peu tout en baset là on va mettre une valeur un petit peu plus haute.Donc on va tricher,on va mettre un prix de 500,je sors et je sauvegardeet je vais réactiver mon crontab.
00:06:44 :Donc je fais crontab-eet je vais réactiver mon crontabqui se lance toutes les minutes.Donc là normalement on va avoir une baisse de prixpuisqu'on va passer de 500 à 234donc c'est suffisant pour déclencher l'alerte.
00:06:55 :Donc je veux juste vérifier avec tous les changementsqu'on a fait depuis que ça fonctionne toujours bienet que j'ai bien l'alerte qui arrive sur mon téléphone.
00:07:01 :Donc je vais essayer de ne pas trop parleret on va voir si on entend de nouveau la notification.De toute façon moi je vais la voir,je ne vais pas vous mentir,si ça n'arrive pas je vous le diraiet on va voir quel est le problème.
00:07:13 :Là j'attends un petit peu,on peut faire un watch comme on l'avait faitdu tail 2donc on va refaire un n de 100sur notre price.json
00:07:24 :pour voir quand est-ce qu'on aura des nouvelles informations.Et voilà, vous voyez que j'ai à peine ouvert le fichieret on a bien, donc j'ai bien l'alertePrice has decreased by 53%.
00:07:36 :Donc ça fonctionne si je sors de çaet que je fais un tail de price.json tout simplementon voit qu'on est bien passé de 500 à 234.
00:07:45 :Donc ça fonctionne et la prochaine itération dans une minuteje ne devrais pas recevoir d'alerteparce que là on va comparer 234 avec 234donc il n'y aura pas de baisse de prix.
00:07:53 :Mais vous voyez que ça fonctionne bien,on a bien les erreurs qui sont loguées,je vais faire un tout dernier test,je vais aller dans Vim avec mon main.py
00:08:02 :et on va faire une petite erreur,on va changer par exemple l'adresse ici.Donc je vais aller ici,je vais mettre n'importe quoi dans le HTTPSet ça devrait provoquer cette erreur request exception.
00:08:14 :Donc je sauvegarde, je lance,on va attendre que le CronTab relance le scriptet on devrait avoir cette erreur.Donc je vais aller voir dans Sentry,je vais retourner dans les issues de Ecom Notifieret là on va encore attendre un petit peuque le script se lance.
00:08:26 :Et voilà, vous voyez que j'ai même pas eu besoind'attendre là encore très longtemps,on a directement l'erreur qui arrive iciavec le Invalid Schéma.
00:08:33 :Donc je vais tout de suite aller remodifier le scriptpour le remettre comme il faut,comme ça voilà avec les deux T HTTPS,je valide et je vais désactiver mon CronTabégalement puisque je n'ai pas envie de scrapercette information pour l'instant.
00:08:46 :Donc je ne veux pas surcharger le siteet dépenser des crédits Bright Data.Mais voilà, vous voyez que ça fonctionne bien,on a là encore notre erreur,on voit le problème,on voit la ligne de code qui pose problème,Invalid Schéma,donc le problème voilà,l'adapteur n'est pas bon.
00:09:00 :On a encore ici toutes les valeurs importantes pour nous,on a la valeur de la signe,la valeur des proxys,la valeur de l'URL et toutes les informationsqui pourraient nous être utiles pour résoudre ce problème.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.