[{"data":1,"prerenderedAt":402},["ShallowReactive",2],{"\u002Fv5\u002Fdodock\u002Ffonctionnalites\u002Foutils\u002Frecorder":3,"section:\u002Fv5\u002Fdodock\u002Ffonctionnalites\u002Foutils\u002Frecorder":401},{"id":4,"title":5,"body":6,"description":386,"extension":387,"meta":388,"navigation":390,"path":397,"seo":398,"stem":399,"__hash__":400},"docs\u002F1.v5\u002F3.dodock\u002F04.fonctionnalites\u002F5.outils\u002Frecorder.md","L'enregistreur – suivi des requêtes et des événements",{"type":7,"value":8,"toc":376},"minimark",[9,13,22,27,38,42,80,83,86,238,241,245,271,274,307,311,314,344,348,368],[10,11,5],"h1",{"id":12},"lenregistreur-suivi-des-requêtes-et-des-événements",[14,15,16,17,21],"p",{},"L'",[18,19,20],"strong",{},"Enregistreur"," (Recorder) capture ce que le serveur fait pendant quelques minutes : les requêtes web, les tâches de fond, les requêtes SQL et les méthodes du cycle de vie des documents. Il sert à trouver la cause d'une lenteur ou d'un comportement inattendu.",[23,24,26],"h2",{"id":25},"prérequis","Prérequis",[28,29,30],"ul",{},[31,32,33,34,37],"li",{},"Être connecté avec le compte ",[18,35,36],{},"Administrator",". Les autres utilisateurs, même gestionnaires système, reçoivent le message « Seul l'Administrateur est autorisé à utiliser l'Enregistreur ».",[23,39,41],{"id":40},"démarrer-un-enregistrement","Démarrer un enregistrement",[43,44,45,51,62,65,71,74],"ol",{},[31,46,47,48,50],{},"Ouvrez la recherche (Ctrl+K) et saisissez ",[18,49,20],{},".",[31,52,53,54,57,58,61],{},"Cliquez sur ",[18,55,56],{},"Démarrer",". La fenêtre ",[18,59,60],{},"Configurer l'enregistreur"," s'ouvre.",[31,63,64],{},"Choisissez ce qu'il faut enregistrer (voir le tableau ci-dessous).",[31,66,53,67,70],{},[18,68,69],{},"Commencer à enregistrer",". L'indicateur passe à « Actif ».",[31,72,73],{},"Faites l'action à analyser dans un autre onglet.",[31,75,76,77,50],{},"Revenez sur l'enregistreur et cliquez sur ",[18,78,79],{},"Arrêter",[14,81,82],{},"L'enregistrement s'arrête seul après 10 minutes. La liste se rafraîchit toutes les 5 secondes pendant l'enregistrement.",[14,84,85],{},"Les options de la fenêtre s'affichent en anglais :",[87,88,89,105],"table",{},[90,91,92],"thead",{},[93,94,95,99,102],"tr",{},[96,97,98],"th",{},"Option",[96,100,101],{},"Effet",[96,103,104],{},"Par défaut",[106,107,108,122,142,154,170,182,194,206,222],"tbody",{},[93,109,110,116,119],{},[111,112,113],"td",{},[18,114,115],{},"Record Web Requests",[111,117,118],{},"Enregistre les requêtes web.",[111,120,121],{},"Cochée",[93,123,124,129,137],{},[111,125,126],{},[18,127,128],{},"Request path filter",[111,130,131,132,136],{},"Enregistre seulement les chemins qui commencent par ce texte, par exemple ",[133,134,135],"code",{},"\u002Fapi\u002Fmethod\u002Ferpnext",". Vide : toutes les requêtes.",[111,138,139],{},[133,140,141],{},"\u002F",[93,143,144,149,152],{},[111,145,146],{},[18,147,148],{},"Record Background Jobs",[111,150,151],{},"Enregistre les tâches de fond.",[111,153,121],{},[93,155,156,161,167],{},[111,157,158],{},[18,159,160],{},"Background Jobs filter",[111,162,163,164,50],{},"Enregistre seulement les tâches dont le nom contient ce texte, par exemple ",[133,165,166],{},"email_queue.pull",[111,168,169],{},"Vide",[93,171,172,177,180],{},[111,173,174],{},[18,175,176],{},"Record SQL queries",[111,178,179],{},"Enregistre chaque requête SQL.",[111,181,121],{},[93,183,184,189,192],{},[111,185,186],{},[18,187,188],{},"Generate EXPLAIN for SQL queries",[111,190,191],{},"Ajoute le plan d'exécution de chaque requête.",[111,193,121],{},[93,195,196,201,204],{},[111,197,198],{},[18,199,200],{},"Capture callstack of SQL queries",[111,202,203],{},"Indique le code qui a lancé chaque requête.",[111,205,121],{},[93,207,208,213,220],{},[111,209,210],{},[18,211,212],{},"Capture document lifecycle timeline",[111,214,215,216,219],{},"Enregistre chaque méthode du cycle de vie et chaque ",[133,217,218],{},"doc_events",", avec sa durée et l'application qui l'a déclenchée.",[111,221,121],{},[93,223,224,229,235],{},[111,225,226],{},[18,227,228],{},"Run cProfile",[111,230,231,232,234],{},"Profile le code Python. Ralentit beaucoup le serveur. Décochez ",[18,233,200],{}," avec cette option.",[111,236,237],{},"Décochée",[14,239,240],{},"Vous devez enregistrer au moins les requêtes web ou les tâches de fond.",[23,242,244],{"id":243},"lire-les-résultats","Lire les résultats",[14,246,247,248,251,252,255,256,259,260,263,264,267,268,50],{},"Chaque ligne de la liste est une requête ou une tâche. Elle montre le ",[18,249,250],{},"Lien"," (le chemin appelé), la ",[18,253,254],{},"Durée",", l'heure, le ",[18,257,258],{},"Nombre de requêtes",", le ",[18,261,262],{},"Nombre d'événements"," et les ",[18,265,266],{},"Applications impliquées",". Ouvrez la ligne pour voir aussi la ",[18,269,270],{},"Durée des requêtes",[14,272,273],{},"Ouvrez une ligne pour voir :",[28,275,276,283,287,294,300],{},[31,277,278,279,282],{},"Les ",[18,280,281],{},"Requêtes SQL",", avec leur durée, leur plan et la pile d'appels.",[31,284,278,285,50],{},[18,286,266],{},[31,288,289,290,293],{},"La ",[18,291,292],{},"Chronologie"," des événements du cycle de vie : méthode, type de document, document, applications, nombre de requêtes et durée en millisecondes.",[31,295,278,296,299],{},[18,297,298],{},"Indexes suggérés"," pour les requêtes lentes.",[31,301,302,303,306],{},"Le ",[18,304,305],{},"Résultat CProfile",", si l'option était cochée.",[23,308,310],{"id":309},"exemple","Exemple",[14,312,313],{},"Exemple fictif : la création d'un client prend plusieurs secondes.",[43,315,316,325,328,331,341],{},[31,317,318,319,321,322,50],{},"Démarrez l'enregistreur avec ",[18,320,128],{}," à ",[133,323,324],{},"\u002Fapi\u002Fmethod\u002Ffrappe.desk.form.save",[31,326,327],{},"Créez le client « Maison Verte SARL ».",[31,329,330],{},"Arrêtez l'enregistreur et ouvrez la ligne de la sauvegarde.",[31,332,333,334,336,337,340],{},"Dans la ",[18,335,292],{},", triez par durée. Une méthode ",[133,338,339],{},"validate"," d'une application tierce prend 3 secondes et lance 400 requêtes.",[31,342,343],{},"Corrigez ou désactivez ce code, puis refaites la mesure.",[23,345,347],{"id":346},"gérer-les-enregistrements","Gérer les enregistrements",[28,349,350,356,362],{},[31,351,352,355],{},[18,353,354],{},"Réinitialiser"," supprime tous les enregistrements.",[31,357,358,361],{},[18,359,360],{},"Exporter"," (menu) télécharge les enregistrements dans un fichier JSON.",[31,363,364,367],{},[18,365,366],{},"Importer"," (menu) charge un fichier exporté, si la liste est vide.",[369,370,373],"callout",{"color":371,"icon":372},"amber","i-heroicons-exclamation-triangle",[14,374,375],{},"L'enregistrement ralentit le serveur. Utilisez des filtres en production et arrêtez l'enregistreur dès la mesure faite. Les enregistrements sont gardés dans le cache Redis, pas en base de données. Un vidage du cache les efface.",{"title":377,"searchDepth":378,"depth":379,"links":380},"",1,2,[381,382,383,384,385],{"id":25,"depth":379,"text":26},{"id":40,"depth":379,"text":41},{"id":243,"depth":379,"text":244},{"id":309,"depth":379,"text":310},{"id":346,"depth":379,"text":347},"Enregistrer les requêtes web, les tâches de fond, les requêtes SQL et les événements du cycle de vie des documents pour diagnostiquer une lenteur.","md",{"icon":389,"reviewed":390,"last_verified":391,"sources":392},"i-mdi-timeline-clock",true,"2026-11-04",[393,394,395,396],"frappe\u002Frecorder.py","frappe\u002Fcore\u002Fdoctype\u002Frecorder\u002Frecorder_list.js","frappe\u002Fcore\u002Fdoctype\u002Frecorder\u002Frecorder.json","frappe\u002Fcore\u002Fdoctype\u002Frecorder_event\u002Frecorder_event.json","\u002Fv5\u002Fdodock\u002Ffonctionnalites\u002Foutils\u002Frecorder",{"title":5,"description":386},"1.v5\u002F3.dodock\u002F04.fonctionnalites\u002F5.outils\u002Frecorder","wgAMsUNpY9coeAd9IbsNnIg4Jm1whg1X-_FmIth6euU",{},1793867632894]