Version de développement
Cette documentation décrit la version « next » (develop), non encore publiée. Pour la version stable, basculez sur « v5 » dans l'en-tête.
Outils

Les outils de diagnostic

Vérifier les autorisations d'un utilisateur avec l'Inspecteur d'autorisations et trouver la cause d'une lenteur avec l'Enregistreur.

L'inspecteur d'autorisations

Cet outil vérifie si un utilisateur a le droit de faire une action. Il est réservé au rôle Gestionnaire système. Ouvrez l'Inspecteur d'autorisations depuis la recherche (Ctrl+K).

Renseignez le Type de document, le Document (facultatif), l'Utilisateur et le Type d'autorisation (par défaut « Lire »). Le cadre Résultat affiche les rôles de l'utilisateur, les autorisations issues de ces rôles, l'effet des autorisations utilisateur, puis le résultat final, par exemple « L'utilisateur … n'a pas accès à ce document ».

Exemple fictif : un commercial ne peut pas ouvrir la facture ACC-SINV-2026-00042. Choisissez Type de document « Facture de vente », Document ACC-SINV-2026-00042, Utilisateur le commercial, Type d'autorisation « Lire ». Le Résultat montre qu'une autorisation utilisateur limite ses accès à une autre société.

Les messages d'erreur

En cas de refus, lisez le message affiché. Il indique en général le type de document et le droit qui manque. Les erreurs serveur sont aussi gardées dans le journal des erreurs.

L'enregistreur

L'Enregistreur (Recorder) suit les requêtes web et les tâches de fond exécutées sur le site. Il note aussi les requêtes SQL et les méthodes du cycle de vie des documents. Il sert à trouver les étapes lentes d'une action.

Seul le compte Administrator peut l'utiliser. Les autres utilisateurs, même avec le rôle Gestionnaire système, reçoivent le message « Seul l'Administrateur est autorisé à utiliser l'Enregistreur ».

Démarrer un enregistrement

  1. Ouvrez l'Enregistreur depuis la recherche (Ctrl+K).
  2. Cliquez sur Démarrer. La fenêtre Configurer l'enregistreur s'ouvre.
  3. Choisissez les options (voir le tableau ci-dessous).
  4. Cliquez sur Commencer à enregistrer. L'indicateur passe à « Actif ».
  5. Faites l'action à analyser, puis cliquez sur Arrêter.

L'enregistrement s'arrête seul après 10 minutes. Pendant l'enregistrement, la liste se rafraîchit toutes les 5 secondes.

Les options de la fenêtre s'affichent en anglais :

OptionEffetPar défaut
Record Web RequestsEnregistre les requêtes web.Cochée
Request path filterEnregistre seulement les chemins qui commencent par ce texte, par exemple /api/method/frappe.desk.form.save. Vide : toutes les requêtes./
Record Background JobsEnregistre les tâches de fond.Cochée
Background Jobs filterEnregistre seulement les tâches dont le nom contient ce texte, par exemple email_queue.pull.Vide
Record SQL queriesEnregistre chaque requête SQL.Cochée
Generate EXPLAIN for SQL queriesAjoute le plan d'exécution de chaque requête.Cochée
Capture callstack of SQL queriesIndique le code qui a lancé chaque requête.Cochée
Capture document lifecycle timelineEnregistre les méthodes du cycle de vie des documents (validate, on_update, on_submit…), les doc_events et les autres hooks. Voir Analyser les hooks Python dans les performances.Cochée
Run cProfileProfile le code Python. Ralentit beaucoup le serveur. Décochez Capture callstack of SQL queries avec cette option.Décochée

Vous devez enregistrer au moins les requêtes web ou les tâches de fond.

Lire la liste

Chaque ligne de la liste est une requête ou une tâche. Elle montre le Lien (le chemin appelé), la Durée, l'heure, le Nombre de requêtes, le Nombre d'événements et les Applications impliquées.

Ouvrez une ligne pour voir aussi les Requêtes SQL (avec leur durée, leur plan et la pile d'appels), les Indexes suggérés et le Résultat CProfile, si l'option était cochée.

Analyser la chronologie des documents

Ouvrez une requête enregistrée. La section Chronologie liste chaque méthode exécutée, imbriquée selon les appels. Pour chaque ligne :

  • Durée (ms) : le temps d'exécution.
  • Requêtes : le nombre de requêtes SQL lancées.
  • Applications : les applications qui ont déclenché la méthode.

La requête indique aussi le Nombre de requêtes, la Durée des requêtes, le Nombre d'événements et les Applications impliquées.

Exemple fictif : la validation d'une facture client prend 8 secondes.

  1. Démarrez l'enregistreur avec l'option Capture document lifecycle timeline.
  2. Validez une facture du client Maison Verte SARL.
  3. Arrêtez l'enregistreur et ouvrez la requête de validation.
  4. Dans la Chronologie, cherchez la ligne dont la durée est la plus longue. Ses Applications indiquent l'application à corriger.

Gérer les enregistrements

  • Réinitialiser supprime tous les enregistrements.
  • Exporter (menu) télécharge les enregistrements dans un fichier JSON.
  • Importer (menu) charge un fichier exporté. L'import ne se fait que si la liste est vide.
L'enregistrement ralentit le serveur. Utilisez un filtre de chemin 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.