Un nouvel outil au bout des doigts pour analyser les journaux de débogage

Traduit automatiquement de Deepl

Avec 4D v17 R5, nous avons amélioré les journaux de débogage en ajoutant des méthodes et en permettant à chaque processus d’être tracé indépendamment. Avec cette version R, nous sommes allés un peu plus loin en livrant un outil d’analyse des journaux de débogage pour vous aider à surveiller l’exécution des processus. Vous pourrez voir quels sont les processus qui consomment le plus, la chaîne d’appels avec le temps d’exécution correspondant, et bien plus encore.

HDI : Analyseur de journaux de débogage

Dans ce billet de blog, nous allons examiner un scénario dans lequel nous devons trouver la raison de la lenteur des réponses d’une base de données servant des pages Web dynamiques.

Certains utilisateurs ont remarqué que le site Web est parfois lent, mais ne peuvent pas fournir plus de détails. Il existe plusieurs façons d’enquêter, alors regardons et essayons de comprendre ce qui se passe !

Générer des journaux de débogage

L’analyseur de logs de débogage est basé sur le format de fichier des logs de débogage de 4D v14. Donc pour activer la journalisation, il suffit d’utiliser le code suivant :
//debug logging activé avec paramètres (option 2), format de fichier 4D v14 (option 4), et écriture différée (option 8)
SET DATABASE PARAMETER
(Debug log recording;2+4+8
)

N’oubliez pas qu’à partir de 4D v17 R5, vous pouvez activer le débogage pour un seul processus. Si vous soupçonnez un processus particulier d’être responsable de la latence, il est désormais facile et moins long de lancer des journaux de débogage pour ce seul processus :

SET DATABASE PARAMETER (Current process debug log recording;2+4+8)

Créer un projet

L’analyseur de journaux de débogage gère des projets, qui sont un ensemble de fichiers de journaux de débogage, et une session de journaux de débogage.

Lorsque vous ouvrez une base de données, une liste des projets stockés s’affiche. Vous pouvez créer un projet en utilisant le bouton « Nouveau ». Vous devez choisir le dossier contenant les journaux de débogage ou choisir les fichiers que vous voulez analyser, puis donner un nom à votre projet.

Gardez à l’esprit que même si le processus d’analyse s’exécute de manière préemptive, il peut prendre du temps en fonction du nombre de fichiers à analyser et des processeurs de votre machine.

Analyse du projet

En sélectionnant le projet dans la liste, un résumé affiche des informations de base telles que l’étendue des journaux de débogage et les lignes analysées. Vous pouvez visualiser les chaînes d’appel, les statistiques et les détails du projet en cliquant sur les boutons correspondants.

CHAÎNES D’APPEL

L’écran des chaînes d’appels affiche la liste des processus avec le temps d’exécution total. La liste est ordonnée de manière à afficher les processus les plus chronophages en haut de l’écran.

Vous pouvez étendre la chaîne d’appel des processus et voir l’opération la plus consommatrice à chaque niveau. En cliquant sur un processus avec la touche ALT, il étend automatiquement la chaîne d’appel la plus lourde, et en double-cliquant sur une opération, il la déplace dans l’explorateur de chaînes. Vous pouvez ensuite sélectionner un niveau dans la liste pour rafraîchir la vue de la liste hiérarchique au niveau correspondant. Pour chaque commande sélectionnée, le nombre total d’appels, la durée totale et la durée moyenne sont affichés.

Exemple

Dans l’exemple ci-dessous, nous avons recherché les processus et les commandes les plus consommateurs. Nous pouvons voir que la commande RELATE MANY SELECTION peut prendre plus d’une minute, alors regardons la section des informations détaillées et voyons où la commande a été appelée.

blank

INFORMATIONS DÉTAILLÉES

Sélection de l’intervalle de temps

L’écran détaillé présente une chronologie de l’activité, affichée minute par minute. Vous pouvez effectuer un zoom avant ou arrière pour voir plus ou moins de détails. Cela vous permet de sélectionner l’intervalle de temps spécifique à analyser. Vous pouvez sélectionner une seule ou plusieurs minutes en déplaçant les limites.

Lorsqu’une nouvelle plage est sélectionnée, une analyse est lancée et les résultats s’affichent en bas de l’écran. En mettant en évidence les périodes de forte activité, vous disposez d’un autre moyen pour déterminer les processus lents .

Onglet SOMMAIRE

L’onglet Résumé affiche les statistiques générales du temps d’exécution du processus pour l’intervalle de temps sélectionné. Vous pouvez réduire les statistiques en sélectionnant un processus dans la liste.

blank

Onglet Top

L’onglet Top affiche toutes les opérations enregistrées avec leur nombre d’appels et le temps d’exécution total pour les processus et l’intervalle de temps choisis. La liste peut être réduite en utilisant un filtre pour les commandes, les méthodes ou les méthodes membres. C’est un autre bon moyen de déterminer les commandes, méthodes, etc. les plus consommatrices.

En suivant notre exemple, nous avons sélectionné une plage de temps et filtré par commandes. Une confirmation apparaît : la commande RELATE MANY SELECTION est utilisée plusieurs fois et a pris beaucoup de temps. Passons à l’étape suivante pour plus de détails.

blank

Opérations

L’onglet Opérations affiche toutes les opérations détaillées d’une minute isolée pour les processus choisis. Vous pouvez réduire la liste ou simplement la mettre en évidence en recherchant une opération. Cette statistique est limitée à une minute pour des raisons de performance, n’oubliez donc pas de sélectionner la minute à laquelle vous voulez voir les opérations initiées !

Cette liste peut être très utile car elle vous montre toutes les lignes de code exécutées. Vous pouvez également la classer par colonne.

Pour terminer notre exemple, nous avons recherché la commande RELATE MANY SELECTION , filtré la liste et trié par la colonne Duration (pour placer les appels les plus longs en haut de la liste). Il semble que les deux appels les plus longs soient effectués avec le même champ. Un rapide coup d’œil à la structure de notre base de données et nous avons trouvé le coupable : le champ avait besoin d’être indexé.

blank

En conclusion

Cet outil est conçu pour vous aider à trouver des conflits dans votre code et à améliorer les performances de votre base de données. Mettez la main à la pâte et amusez-vous à enquêter en téléchargeant l’IDH ci-dessus !

Avatar
- Product Owner -Damien Fuzeau a rejoint l'équipe 4D Product en février 2019. En tant que Product Owner, il est en charge de la rédaction des user stories, puis de leur traduction en spécifications fonctionnelles. Son travail consiste également à s'assurer que les implémentations de fonctionnalités livrées répondent aux besoins des clients.Damien est diplômé de l'Université de Nantes en génie logiciel. Il a passé plus de 23 ans dans son ancienne entreprise, d'abord en tant que développeur (découverte de 4D en 1997), puis en tant que responsable de l'ingénierie et architecte logiciel. Cette société est un partenaire OEM de 4D et a déployé des logiciels d'entreprise basés sur 4D pour des milliers d'utilisateurs, sur des centaines de serveurs. Damien est donc habitué au développement et au déploiement 4D dans un contexte multi-langues.