Fermer

    De quel département êtes-vous ?

    Vos informations générales

    Quel est votre objectif ?

    Quel est le nombre d'utilisateurs
    pour votre projet ?

    A quelle étape vous trouvez-vous actuellement ?

    Quel est le délais de mise en place que vous souhaitez ?

    Précédent

    Déclenchez le signal !
    Nous sommes les héros de Tableau Software, Microsoft Power BI et Alteryx ? Découvrez quelques unes de nos réalisations Let's rock ! Led Zeppelin et le basketball français en statistiques.

    Maîtrisez votre temps !
    Nous travaillons avec les outils Snowflake, Gathering Tools et Alteryx. Découvrez le retour de nos clientsOney Data et Keolis

    Votre futur vous attend !

    Découvrez notre Data Driven Journey et la solution Alteryx.

    Rassemblons vos forces !

    Découvrez notre Data Driven Journey et notre communauté. Renseignez-vous sur nos formation au Data-Universe.

    Drive your insights!

    Découvrez notre Communauté et nos réalisations Let's rock ! Led Zeppelin et la gestion d'une équipe de basketball en statistiques.

    Évoluez à l'infini et au-delà !

    Découvrez notre méthode exclusive : Data Driven Journey. Accédez à notre panel de formations.

     

    Article

    Guide Talend Open Studio
    Comment configurer des logs

    Article rédigé par Nicolas Busser – Consultant BI Actinvision

     

    Pourquoi mettre en place des logs ?

     

    Dans tout projet d’intégration de données, il est crucial de disposer d’une visibilité sur le succès des différents flux afin d’assurer la qualité, la traçabilité et la fiabilité des différents traitements. Pour cela, il est essentiel de mettre en place une stratégie de surveillance des flux, permettant de détecter et d’identifier les éventuels problèmes pouvant affecter les traitements et nuire aux activités des clients.

    L’une des stratégies, couramment utilisées pour la surveillance des flux, est l’utilisation de logs, également connue sous le nom de journaux. Les logs sont des fichiers configurés par le développeur pour enregistrer de manière chronologique les événements et les actions qui se produisent lors de l’exécution du flux d’intégration de données. Ils fournissent une trace détaillée de chaque étape du processus, ce qui facilite le dépannage, l’analyse des performances et la compréhension des erreurs éventuelles.

    Comment mettre en place des logs dans Talend Open Studio ?

     

    Talend Open Studio (TOS) est une plateforme d’intégration de données open source pour la conception, le développement et l’exécution de flux de données. Dans des cas spécifiques de cet outil, plusieurs techniques peuvent être mises en place pour mettre en œuvre des logs efficaces. Voici quelques-unes de ces techniques que nous détaillerons par la suite :

    1. TALEND OPEN STUDIO permet de définir différents niveaux de log, tels que :

    DEBUG,

    INFO,

    WARN

    Ces niveaux permettent de contrôler la quantité d’informations enregistrées dans les logs. Un niveau de log DEBUG peut enregistrer des informations détaillées, tandis qu’un niveau de log ERROR peut se limiter aux erreurs critiques.

    2. Il est possible de personnaliser les logs dans TALEND OPEN STUDIO en ajoutant des informations spécifiques, telles que des métadonnées sur les flux, des informations sur les transformations appliquées ou des données contextuelles. Cela permet d’enregistrer des informations supplémentaires pertinentes pour l’analyse ultérieure des logs.

    3. Les logs peuvent être utilisés pour enregistrer les erreurs rencontrées lors de l’exécution du flux. Ils peuvent inclure des informations sur l’erreur elle-même, telles que le type d’erreur, le moment où elle s’est produite et les étapes du flux qui ont conduit à l’erreur. Cela facilite l’identification et la résolution des problèmes.

    4. TALEND OPEN STUDIO peut être intégré à des outils de surveillance et d’analyse des logs, tels que ELK Stack (Elasticsearch, Logstash, Kibana), Splunk ou Graylog. Ces outils permettent d’agréger et de visualiser les logs de manière centralisée, facilitant ainsi la surveillance en temps réel, la recherche de données spécifiques et l’analyse des tendances. D’une grande complexité technique, la stack ELK ne sera pas vue dans cet article.

     

    Mettre en place une stratégie de logs efficace dans Talend est la clé pour détecter rapidement les problèmes, les résoudre rapidement, et optimiser les performances. Au sein de TOS, plusieurs méthodes permettent de logger les différents flux. En dehors de la console présente dans l’outil lors des exécutions manuelles, Il n’existe pas de portail permettant d’afficher les logs générés par un flux qui serait lancé autrement, de manière automatique par exemple. En revanche, de nombreux composants sont disponibles dans la palette pour réaliser ce travail. Examinons une partie de ceux-ci.

    Présentation rapide des outils
    de logs contenus dans Talend

     

    tWarm

    Fais remonter un message déclencheur au tLogCatcher sans bloquer l’exécution du job principal.

    Log Talend tWarm

    tDie

    Envoie un message déclencheur au tCatcher et interrompt l’exécution du job une fois qu’il est déclenché. Le message est par la suite traité par le tLogCatcher.

    Log Talend tDie

    tLogCatcher

    Ecoute le tWarm, le tDie ou d’autres commandes d’arrêt du job, comme des erreurs Java. Récupère les informations de log du message et les envoie à une sortie standard Talend.

    Log Talend tCatcher

    Plusieurs choix sont possibles dans ce composant en ce qui concerne les logs à traquer :

    Log Talend tStatCatcher exemple

    Il peut capturer les exceptions Java, les tDie et ou les tWarm. En fonction des champs sélectionnés, les messages émis par ces composants pourront être restitués ou non dans une sortie standard (fichiers, table de base de données). Le schéma utilisé pour ces 3 types de catch est identique et peut être restreint en utilisant un tMap (le schéma ne peut être mis à jour directement sur le tLogCatcher).

    tFlowMeter

    Mesure la volumétrie du flux à son niveau et envoie un message au tFlowMeterCatcher.

    Log Talend tFlowMeter

    tFlowMeterCatcher

    Ecoute les composants tFlowMeter et permet de compiler des informations standards de log à la sortie définie.

    Log Talend tMeterCatcher

    tChronometerStart

    Démarre le calcul du temps de traitement d’un sous job

    Log Talend tChronometerStart

    tChronometerStop

    Arrête un chronomètre virtuel et permet de faire remonter la durée écoulée en tant que statistique.

    Log Talend tChronometerStop

    tStatCatcher

    Permet de capturer les statistiques d’exécution du job, y compris les durées d’exécution, le nombre de lignes traitées, les erreurs rencontrées, etc.

    Log Talend tStatCatcher

    tAssert

    Envoie un statut selon le succès (Ok) ou l’échec (Fail) du job dans lequel il est placé.

    Log Talend tAssert

    tAssertCatcher

    Ecoute les tAssert ou les autres commandes Die dans le job et récupère les informations de log du message pour les envoyer dans une sortie Talend standard.

    Log Talend tAssertCatcher

    Différentes stratégies de journalisation dans Talend

     

    De fait, plusieurs stratégies sont possibles pour journaliser les opérations d’un flux dans Talend, en utilisant les composants dédiés ou non. Examinons ces possibilités.

     

    Utilisation du composant tLogCatcher

    Log Talend tStatCatcher

    Le composant tLogCatcher permet de capturer les messages d’erreur ou les logs générés par les autres composants du job. Vous pouvez définir des filtres pour capturer les messages d’erreur spécifiques ou simplement capturer tous les logs. Les logs capturés peuvent ensuite être écrits dans un fichier ou envoyés à une base de données, un système de gestion des logs ou tout autre système de stockage.

    Avantages

    Capture des logs d’erreur : vous pouvez capturer les messages d’erreur générés par les composants du job, ce qui facilite le débogage.

    Gestion centralisée des logs : vous pouvez stocker les logs capturés dans un fichier, une base de données ou tout autre système de stockage centralisé.

    Flexibilité : vous pouvez définir des filtres pour capturer uniquement les logs pertinents, ce qui permet de réduire le volume de logs à gérer.

    Inconvénients

    Configuration initiale nécessaire : vous devez configurer correctement le composant tLogCatcher pour capturer les logs souhaités. Cela inclus un grand nombre de composant tDie et tWarn pouvant alourdir la structure des jobs.

    Surcharge de traitement : si le volume de logs est élevé, la capture de tous les logs peut entraîner une surcharge de traitement et affecter les performances globales du job.

    Talend Flux chargement log

     

    Utilisation du tFlowMeter (et catcher)

    Log Talend tFlowMeter     Log Talend tMeterCatcher

    Le composant tFlowMeter permet de mesurer et de contrôler le débit des données à différentes étapes du job.

    Avantages

    Mesure du débit des données : vous pouvez suivre le débit des données à différentes étapes du job pour identifier les éventuels goulets d’étranglement ou les problèmes de performance.

    Contrôle du débit : vous pouvez définir des seuils de débit et prendre des mesures appropriées si les seuils sont dépassés.

    Possibilité de filtrage : vous pouvez mesurer le débit pour des flux de données spécifiques ou appliquer des filtres pour mesurer uniquement certaines données.

    Inconvénients

    Configuration initiale nécessaire : vous devez configurer correctement le tFlowMeter pour mesurer le débit souhaité.

    Surcharge de traitement : la mesure du débit peut ajouter une surcharge de traitement, en particulier si vous mesurez le débit à plusieurs endroits du job ou si le volume de données est important.

    Il est important de noter que le tFlowMeter est principalement destiné à la capture de statistiques et de mesures de performance. Il peut compléter les autres méthodes de création de logs dans Talend Open Studio, mais ne fournissent pas de logs détaillés sur les données elles-mêmes.

     

    Utilisation du tStatCatcher

    Log Talend tStatCatcher

    Le composant tStatCatcher permet de capturer les statistiques d’exécution du job, y compris les durées d’exécution, le nombre de lignes traitées, les erreurs rencontrées, etc.

    Avantages

    Capture des statistiques d’exécution : vous pouvez obtenir des informations précises sur les performances de votre job, y compris les temps d’exécution et les statistiques de traitement.

    Gestion centralisée des statistiques : vous pouvez stocker les statistiques capturées dans un fichier, une base de données ou tout autre système de stockage centralisé.

    Possibilité de filtrage : vous pouvez définir des filtres pour capturer uniquement les statistiques pertinentes.

    Inconvénients

    Configuration initiale nécessaire : vous devez configurer correctement le tStatCatcher pour capturer les statistiques souhaitées.

    Surcharge de traitement : si vous capturez de nombreuses statistiques, cela peut entraîner une surcharge de traitement et affecter les performances globales du job.

    Il est important de noter que le tStatCatcher est principalement destiné à la capture de statistiques et de mesures de performance. Il peut compléter les autres méthodes de création de logs dans Talend Open Studio, mais ne fournissent pas de logs détaillés sur les données elles-mêmes.

     

    Utilisation du tLogRow

    Log Talend tLogRow1

    Le composant tLogRow permet d’afficher les lignes de données sur la console lors de l’exécution du job. Vous pouvez connecter ce composant à la sortie de n’importe quel autre composant pour afficher les données qui le traversent.

    Avantages

    Facilité d’utilisation : le composant tLogRow est simple à configurer et à utiliser.

    Affichage en temps réel : les logs sont affichés directement dans la console pendant l’exécution du job, ce qui permet un suivi immédiat.

    Convient aux logs de petite taille : cette méthode est appropriée lorsque vous souhaitez afficher uniquement quelques lignes de données à des étapes spécifiques du job.

    Inconvénients

    Pas de persistance des logs : les logs ne sont pas enregistrés dans un fichier ou une base de données, ce qui rend difficile la consultation des logs après l’exécution du job.

    Difficulté de gestion des logs volumineux : si vous générez de nombreux logs, il peut être difficile de les suivre dans la console, surtout lorsque l’exécution du job est rapide.

    Aucune normalisation : les logs auront la forme de leur flux respectif, empêchant de facilement normaliser les différents logs pour des jobs distincts.

     

    Utilisation de fonctions Java de logging

    Logo java

    Enfin, il est possible d’utiliser des expressions Java dans les composants Talend pour afficher des logs en utilisant la fonction System.out.println(). Cette méthode est utile pour afficher des messages personnalisés ou des valeurs de variables à des étapes spécifiques du job.

    Avantages

    Flexibilité totale : vous pouvez afficher des messages personnalisés ou des valeurs de variables à des étapes spécifiques du job, au sein même du code !

    Simplicité : cette méthode utilise des expressions Java standard, ce qui la rend facile à utiliser.

    Inconvénients

    Logs mélangés avec les autres messages de la console : les logs affichés avec System.out.println() sont mélangés avec les autres messages de la console, ce qui peut rendre la lecture des logs plus difficile.

    Difficulté de gestion des logs volumineux : si vous générez de nombreux logs, il peut être difficile de les suivre dans la console, surtout lorsque l’exécution du job est rapide.

    Pas de persistance des logs : ils ne sont pas enregistrés dans un fichier ou une base de données, ce qui rend difficile la consultation des logs après l’exécution du job.

    Changement de paradigme : le débogage via des sondes java demande à passer d’un paradigme intégration à celui d’un développeur java, ce qui peut rendre difficile la maintenabilité du projet.

    Gestion log globale

    Génère automatiquement un traitement des logs en fin de chargement (sans avoir à définir de fichier de sortie dans chaque job), Cette méthode traquera sur le projet/job tous les tWarm, tDie et Error java, (= tLogCatcher : en revanche, parmis ces 3, impossible à ce niveau de pouvoir choisir lesquels spécifiquement restituer, ils remonteront tous dans les cibles définies) ou tStatCatcher et tFlowMeterCatcher.

    Paramètre des logs possible au niveau du projet

    Paramètre des logs possibles au niveau du projet

    Il est possible de configurer des paramètres de tCatch à partir des propriétés du projet et ainsi regrouper au même endroit tous les tCatch du projet

     

    Gestion des Logs possible au niveau d’un job en particulier

    Paramètre des logs possibles au niveau d'un log en particulier

    Dans l’onglet rattaché au job, celui-ci peut récupérer le format défini pour le projet si celui-ci est renseigné, ou peut aussi posséder une configuration qui lui est propre pour une analyse ponctuelle d’un job en particulier.

     

    ATTENTION, si un log job est spécifié et que sa configuration est différente de la configuration du projet, celle-ci sera exécutée en priorité pour ce job à la place de celle du projet. En revanche, si une sortie est définie dans le flux de chargement à l’aide d’un tLogCatcher, celle-ci sera en complément de l’action définie dans la configuration du Job/Projet (2 sorties de logs seront ainsi utilisées).

    Test du flux journalisé

     

    Exemple : Mise en place de logs via tDie/tWarn dans TOS

    Mise en place log dans TOS

     

    Restitution du log possible à choisir dans un tMap issue d’un tLogCatcher

    Restitution log

     

    Exemple de restitution du tLogCatcher

    Exemple restitution log tCatcher

     

    Colonnes pouvant être utilisées de manière pertinente dans un log d’exécution pour restitutions : Context, Moment, Project, Job, Code, Origine, Message

    Exemple restitution log tCatcher 2

     

    Obtenu sur notre job d’exemple Via le tMap suivant après le tLogCatcher, ou alors à extraire à partir de la table ou fichier centralisé des logs (traitement qui sera à mettre en place)

    Extraction log

     

    Le flux de chargement possède à son lancement un tChronometrStart ainsi qu’un tChronometerStop à la fin du flux. Celui-ci peut aussi être récupérable grâce aux variables Outline.