Outils pour les productions
Une production désigne l'exécution d'un grand nombre de traitements similaires, typiquement réalisés en batch au Centre de calcul.
Différents outils permettent d'organiser et de gérer ces opérations. Une partie de ces outils s'appuie sur la base de données et sont plutôt destinés aux gestionnaires des données Eros mais d'autres sont d'un accès plus large et ne nécessitent au droit spécifique.
- Launch gère la soumission d'un ensemble de batchs décrits dans un fichier de configuration.
- Report Batches présente un rapport sur les batchs soumis à partir de leurs fichiers logs.
- Eros Message permet d'émettre un message aux conventions ErosDb à partir d'un script afin de faciliter la construction d'un rapport via ReportBatches.
- Archive archive les logs, scripts et autres fichiers liés à une production dans Irods sous la forme d'une archive Jar.
- Operations gère l'organisation, la soumission et le suivi d'un ensemble d'opérations via l'enregistrement dans la base de données des traitements à réaliser.
Launch
Launch permet de soumettre en une seule fois un ensemble de batchs dont les caractéristiques sont définies à partir d'un fichier de configuration.
Le fichier de configuration est nommé batch.properties. La liste des propriétés et des variables utilisables sont présentées grâce à l'option -describe.
Les quatre propriétés devant être nécessairement définies sont:
- jobname: le nom des jobs à soumettre, en principe défini à partir de variables de la configuration
- command: la commande devant être exécutée par les jobs
- args: la liste des arguments transmis aux batchs.
- cpu: le temps CPU nécessaire à l'exécution d'un batch.
Par défaut, Launch lance tous les jobs définis. Il est possible d'indiquer un argument sur la ligne de commande correspondant au batch à lancer. Cette possibilité est intéressante pour soumettre un batch 'pilote' afin de valider la configuration.
A l'inverse, l'option -ignore permet de lancer tous les batchs sauf celui indiqué sur la ligne de commande. Cette possibilité permet de lancer la suite de la production une fois le batch pilote correctement exécuté.
Les options -verbose et -checkonly permettent de présenter les caractéristiques des jobs à exécuter sans les lancer.
La description complète du launcher est présenté à la page Launch.
Report Batches
ReportBatches présente un rapport résumant la situation des batchs soumis par l'analyse de leur fichier de log.
En standard, tous les fichiers log du répertoire courant sont lus et analysés, mais il est possible d'indiquer la liste des logs à traiter.
Toujours en standard, tous les batchs sont rapportés. L'option -failed permet de limiter le rapport aux seuls jobs ayant échoués.
L'interprétation de l'échec ou non d'un batch n'est pas aisée, mais un point au moins est certain, c'est que si le fichier log ne contient pas le rapport final indiquant les ressources utilisées dans le batch, c'est que celui-ci aura été interrompt par le superviseur.
Une autre anomalie rapportée concerne les fichiers entièrement vides. Cette situation est typique d'un job en cours d'exécution soumis grâce à Grid Engine. Pour d'autres gestionnaires de batch, le fichier log peut être tout simplement absent. Mais le script de pilotage du batch, portant le même nom que le batch mais avec l'extension sub, est présent. Le rapporteur traite également les fichiers sub comme marqueur d'exécution.
D'autres erreurs typiques sont reconnues, comme par exemple les messages d'erreur Irods, les rapports d'exception Java, les messages d'erreur émis par la librairie ErosDb ou les messages d'interruption des applications du projet. L'interprétation de ces messages est toutefois plus délicate et doit être seulement considérée comme une aide à la détection d'erreur.
Utilisation
ReportBatches supporte les options suivantes:
- failed: présente les jobs en erreur
- short: format court
- long: format long
- logs: logs à analyser
Par ailleurs, la liste des logs à traiter peut être indiquée en arguments de la commande.
Exemples
Les exemples s'appuient sur la production FitsHeader chargée d'extraire les entêtes FITS des images Eros 1 CCD. Les traitements ont été réalisés par campagne d'observation et par CCD, d'où la liste suivante des logs:
% dir *.log
FitsHeader_LMC9192_00.log FitsHeader_LMC9293_03.log FitsHeader_LMC9293_15.log FitsHeader_SMC9495_02.log
FitsHeader_LMC9192_01.log FitsHeader_LMC9293_04.log FitsHeader_LMC9394_00.log FitsHeader_SMC9495_03.log
FitsHeader_LMC9192_02.log FitsHeader_LMC9293_05.log FitsHeader_LMC9394_01.log FitsHeader_SMC9495_04.log
FitsHeader_LMC9192_03.log FitsHeader_LMC9293_06.log FitsHeader_LMC9394_02.log FitsHeader_SMC9495_05.log
FitsHeader_LMC9192_04.log FitsHeader_LMC9293_07.log FitsHeader_LMC9394_03.log FitsHeader_SMC9495_07.log
FitsHeader_LMC9192_07.log FitsHeader_LMC9293_08.log FitsHeader_LMC9394_04.log FitsHeader_SMC9495_08.log
FitsHeader_LMC9192_08.log FitsHeader_LMC9293_09.log FitsHeader_LMC9394_07.log FitsHeader_SMC9495_09.log
FitsHeader_LMC9192_09.log FitsHeader_LMC9293_10.log FitsHeader_LMC9394_08.log FitsHeader_SMC9495_10.log
FitsHeader_LMC9192_10.log FitsHeader_LMC9293_10_01.log FitsHeader_LMC9394_10.log FitsHeader_SMC9495_11.log
FitsHeader_LMC9192_11.log FitsHeader_LMC9293_11.log FitsHeader_LMC9394_11.log FitsHeader_SMC9495_12.log
FitsHeader_LMC9192_12.log FitsHeader_LMC9293_12.log FitsHeader_LMC9394_12.log FitsHeader_SMC9495_13.log
FitsHeader_LMC9293_01.log FitsHeader_LMC9293_13.log FitsHeader_SMC9495_00.log FitsHeader_SMC9495_14.log
FitsHeader_LMC9293_02.log FitsHeader_LMC9293_14.log FitsHeader_SMC9495_01.log FitsHeader_SMC9495_15.log
Exécuter sans argument, ReportBatches analyse tous les logs et présente un résumé de chaque batch et un sommaire de la production:
% ReportBatches
Jobname JobID End Date Elapse Cpu CPU Rq.Cpu Memory Rq.Mem Resid Rq.Res Information
------------------------ -------- --------------- ------- --- ------- ------ ------ ------ ----- ------ -------------------
FitsHeader_LMC9192_00 10755577 17-Jun 15:02:59 0:16:22 17 0:00:17 12000 9216 12288 56 4096 Success
FitsHeader_LMC9192_01 10755596 17-Jun 15:03:20 0:16:43 21 0:00:21 12000 9216 12288 55 4096 Success
FitsHeader_LMC9192_02 10755614 17-Jun 15:02:34 0:15:57 16 0:00:16 12000 9216 12288 57 4096 Success
FitsHeader_LMC9192_03 10755633 17-Jun 15:02:57 0:16:20 18 0:00:18 12000 9216 12288 57 4096 Success
FitsHeader_LMC9192_04 10755649 17-Jun 15:02:21 0:15:44 10 0:00:10 12000 9216 12288 51 4096 Success
. . .
FitsHeader_SMC9495_10 10755647 17-Jun 16:23:11 1:36:34 113 0:01:53 12000 9216 12288 60 4096 Success
FitsHeader_SMC9495_11 10755663 17-Jun 16:20:47 1:34:10 87 0:01:27 12000 9216 12288 59 4096 Success
FitsHeader_SMC9495_12 10755678 17-Jun 17:24:06 2:37:29 228 0:03:48 12000 9216 12288 60 4096 Success
FitsHeader_SMC9495_13 10755594 17-Jun 16:18:29 1:31:53 65 0:01:05 12000 9216 12288 60 4096 Success
FitsHeader_SMC9495_14 10755612 17-Jun 16:31:31 1:44:54 118 0:01:58 12000 9216 12288 56 4096 Success
FitsHeader_SMC9495_15 10755630 17-Jun 17:13:15 2:26:33 172 0:02:52 12000 9216 12288 57 4096 Success
Statistics Value
----------- ------
Batch count 52
CPU 3405
Request 624000
Elapse 188595
Memory 9216
Resident 62
Status Number
------------------- ------
Application aborted 1
Success 51
Il est possible de limiter le rapport aux seuls batchs ayant traités les images d'une campagne:
% ReportBatches *LMC9293*
Jobname JobID End Date Elapse Cpu CPU Rq.Cpu Memory Rq.Mem Resid Rq.Res Information
------------------------ -------- --------------- ------- --- ------- ------ ------ ------ ----- ------ -------------------
FitsHeader_LMC9293_01 10755667 17-Jun 15:31:15 0:44:38 48 0:00:48 12000 9216 12288 56 4096 Success
FitsHeader_LMC9293_02 10755581 17-Jun 15:36:18 0:49:41 61 0:01:01 12000 9216 12288 59 4096 Success
FitsHeader_LMC9293_03 10755599 17-Jun 15:45:00 0:58:23 82 0:01:22 12000 9216 12288 57 4096 Success
FitsHeader_LMC9293_04 10755618 17-Jun 15:31:33 0:44:56 32 0:00:32 12000 9216 12288 58 4096 Success
FitsHeader_LMC9293_05 10755637 17-Jun 15:29:44 0:43:07 38 0:00:38 12000 9216 12288 52 4096 Success
FitsHeader_LMC9293_06 10755653 17-Jun 15:32:14 0:45:36 57 0:00:57 12000 9216 12288 57 4096 Success
FitsHeader_LMC9293_07 10755669 17-Jun 15:25:45 0:39:09 18 0:00:18 12000 9216 12288 53 4096 Success
FitsHeader_LMC9293_08 10755584 17-Jun 15:38:13 0:51:36 81 0:01:21 12000 9216 12288 58 4096 Success
FitsHeader_LMC9293_09 10755602 17-Jun 15:31:29 0:44:52 44 0:00:44 12000 9216 12288 60 4096 Success
FitsHeader_LMC9293_10 10755620 17-Jun 15:39:32 0:52:55 65 0:01:05 12000 9216 12288 59 4096 Application aborted
FitsHeader_LMC9293_10_01 11183303 22-Jun 11:52:30 0:33:47 18 0:00:18 12000 9216 12288 53 4096 Success
FitsHeader_LMC9293_11 10755639 17-Jun 16:16:44 1:30:07 143 0:02:23 12000 9216 12288 57 4096 Success
FitsHeader_LMC9293_12 10755655 17-Jun 15:31:21 0:44:44 51 0:00:51 12000 9216 12288 59 4096 Success
FitsHeader_LMC9293_13 10755671 17-Jun 15:29:10 0:42:33 32 0:00:32 12000 9216 12288 59 4096 Success
FitsHeader_LMC9293_14 10755586 17-Jun 15:30:49 0:44:12 23 0:00:23 12000 9216 12288 59 4096 Success
FitsHeader_LMC9293_15 10755604 17-Jun 15:31:25 0:44:48 29 0:00:29 12000 9216 12288 60 4096 Success
Statistics Value
----------- ------
Batch count 16
CPU 822
Request 192000
Elapse 46504
Memory 9216
Resident 60
Status Number
------------------- ------
Application aborted 1
Success 15
Ou de se limiter aux seuls jobs en erreur:
% ReportBatches -fail
Jobname JobID End Date Elapse Cpu CPU Rq.Cpu Memory Rq.Mem Resid Rq.Res Information
--------------------- -------- --------------- ------- --- ------- ------ ------ ------ ----- ------ -------------------
FitsHeader_LMC9293_10 10755620 17-Jun 15:39:32 0:52:55 65 0:01:05 12000 9216 12288 59 4096 Application aborted
Statistics Value
----------- -----
Batch count 1
CPU 65
Request 12000
Elapse 3175
Memory 9216
Resident 59
Status Number
------------------- ------
Application aborted 1
Eros Message
ErosMessage permet de présenter un message au standard Eros depuis un script Shell.
Le niveau de présentation par défaut est Verbose (INFO). Le niveau du contexte peut être défini par la variable d'environnement MSG_LEVEL dont la valeur est l'un des niveaux supportés, indépendamment de la case.
Les variables d'environnement MSG_DEBUG ou DEBUG peuvent également être utilisées. Leur valeur est n'importe qu'elle valeur interprétable comme une valeur booléenne. L'ordre de prise en compte de ces variables est: MSG_DEBUG, DEBUG, MSG_LEVEL.
Un format de présentation peut être déclaré par l'option -format. En l'absence d'un format explicite, les arguments sont simplement concaténés séparés par un espace.
Le niveau du message est indiqué par l'une des options: -fatal, -error, -warning, -verbose ou -info et -debug. La dernière option utilisée détermine le niveau du message. Celui-ci est présenté si son niveau est au moins égale au niveau de présentation défini par le contexte.
L'application est associée à la commande message.
Exemples
Message d'information
$ message exemple
08-Oct-2021 18:56 (INFO) exemple
Message d'erreur
$ message -error erreur grave
08-Oct-2021 18:58 (ERROR) erreur grave
Message de mise au point. En mode standard, ce message n'est pas présenté.
$ message -debug message de mise au point
Pour obtenir la présentation du message de mise au point
$ MSG_LEVEL=DEBUG message -debug message de mise au point
08-Oct-2021 19:00 (DEBUG) message de mise au point
Message avec un format de présentation
$ message -format "Erreur %s dans le fichier %s" NOT_FOUND pom.xml
08-Oct-2021 19:01 (INFO) Erreur NOT_FOUND dans le fichier pom.xml
Archive
Archive sauve les informations d'une production et en particulier les logs des batchs exécutés, les paramètres de soumssion des jobs et les scripts utilisés pour réaliser les traitements.
Les fichiers sont organisés sous la forme d'une archive Jar, le format d'archivage de Java, qui est en fait une archive ZIP.
L'archive reçoit pour nom la date d'archivage et le nom du répertoire courant, qui est normalement le nom de la production. La date associée à l'archive peut cependant être redéfinie, ce qui est utile lorsque l'archivage se fait après la fin des traitements. Plus généralement, le nom de l'archive peut également être imposé.
Lors de la création de l'archive, un fichier nommé Alire.txt est créé et proposé à l'édition sous vi. Ce fichier est inclu à l'archive.
Une fois créée l'archive est sauvée dans le répertoire Irdos irods:///eros/data/productions/migrations. Ce répertoire de destination peut être redéfini par une option d'appel de l'utilitaire.
Les fichiers inclus dans l'archive sont les fichiers de type: log, sub, sh, txt, properties, trace, traces, list, ils. Il est possible d'ajouter d'autres fichiers à l'archive de même qu'il est possible d'en exclure.
Arguments et Options
-
name: nom de la production - le nom par défaut est celui du répertoire de travail, qui est logiquement le nom de la production.
-
date: date de l'archivage - le défaut est la date courante.
-
destination: répertoire de sauvegarde de l'archive - le répertoire par défaut est le répertoire Irods: irods:///eros/data/productions/migrations
-
save: demande ou empêche la recopie de l'archive dans son répertoire de sauvegarde - le fonctionnement par défaut est de sauver l'archive.
-
replace: demande le remplacement d'une archive déjà sauvée de même nom ou empêche son remplacement - le fonctionnement par défaut est de ne pas remplacer l'archive existante par la nouvelle - dans une telle situation, l'application s'interrompt avec un message d'erreur.
-
add: demande l'ajout à l'archive des fichiers indiqués sur la ligne de commande après cette option - c'est le mode de fonctionnement par défaut si des fichiers sont indiqués sur la ligne de commande.
-
ignore: demande d'ignorer les fichiers indiqués sur la ligne de commande après cette option - ce mode de fonctionnement reste en vigueur jusqu'à ce qu'une option -add soit utilisée.
-
files: fichiers à ajouter ou ignorer, en fonction de la présence d'options -add ou -ignore.