Dans les articles précédents nous avons abordé différentes bonnes pratiques autour de la taille et du rôle des jobs, et de l’automatisation de l’exécution de vos jobs à l’aide d’un orchestrateur. Et si vous laissiez vos jobs vous informer, à l’aide de traces, dans quelle étape du traitement sont-ils ?
Conseil N°8 : Tracer les évènements importants du job
Contrairement à une application web, un job est muet quand il s’exécute si on ne s’occupe pas de le faire parler avec des traces.
Il est vital, pour une bonne gestion de vos jobs en production, de mettre en place des traces aux moments clés de leurs exécutions, afin d’être en mesure de répondre aux questions suivantes :
Mon job a-t-il débuté ?
Que fait mon job en ce moment et qu’a-t-il déjà réalisé ?
Combien de temps mon job a-t-il mis pour réaliser une étape ?
Pourquoi mon job a-t-il échoué ?
Combien y avait-il de lignes dans les données en entrée et les données en sortie ?
Mon job est-t-il terminé ?
A contrario, il ne faut surtout pas tracer des informations confidentielles comme des logins/passwords/credentials/clés/… , ce qui constituerait un faille importante de sécurité.
Même si, pour la plupart, c’est une évidence : toutes les traces doivent débuter par un horodatage (timestamp).
Voici un petit exemple pour illustrer ce conseil :
19/02/28 14:54:00 INFO ForgetMeJob$: Begin of Job
19/02/28 14:54:01 INFO ConfigurationReader$: Reading configuration from myfile.json
19/02/28 14:54:02 INFO DataInReader$: Loading data from customer table
19/02/28 14:54:16 INFO DataInReader$: Nb of customer : 15890389
19/02/28 14:57:43 INFO Filter$: Filtering customers
19/02/28 14:58:50 INFO Filter$: Nb of customer : 6567657
19/02/28 15:02:21 INFO Remove$: Removing customers
19/02/28 15:02:21 INFO Remove$: Nb of customer : 6567657
19/02/28 15:02:27 INFO ForgetMeJob$: End of job
Conclusion:
L’implémentation des traces dans vos jobs est un simple réflexe qui peut vous éclairer sur leurs états d’avancement. Initiez l’échange avec vos jobs, prenez de leurs nouvelles, posez leur les questions adéquates et ils vous répondront à leur tour par “les traces”. Nous allons continuer avec cet échange dans le prochain article afin de mieux comprendre le fonctionnement d’un traitement et comment gagner en efficacité.
____________________________________________
Pour relire le conseil N°7 c’est par ici
Pour relire le conseil N°6 c’est par ici
Pour relire le conseil N°5 c’est par ici
Pour relire le conseil N°4 c’est par ici
Pour relire le conseil N°3 c’est par ici
Pour relire le conseil N°2 c’est par ici
Pour relire le conseil N°1 c’est par ici
Pour postuler directement et joindre notre équipe de Data Engineer, c’est par ici.