Aller au contenu principal

Historique d'exécution

Chaque déclenchement de chaque tâche laisse une trace. La page Exécutions et le panneau Détail d'exécution permettent aux opérateurs d'inspecter cette trace — ce qui s'est déclenché, à quel moment, avec quels paramètres, quelle étape a réussi, laquelle a échoué, ce que dit le journal.

Cette page couvre les deux surfaces et les actions qu'elles proposent.


Où vivent les exécutions

Une exécution est accessible depuis plusieurs endroits :

DepuisCe sur quoi cliquer
La carte du catalogue de tâches.Le badge d'état coloré qui suit l'identifiant de tâche (par exemple SUCCEEDED) — ouvre l'exécution qui l'a produit.
La vue Planification.Une pastille dans le calendrier — ne fonctionne que pour les déclenchements déjà survenus.
URL directe./nomaflow/runs/<run-id> si l'identifiant est connu (issu d'une notification, d'un collègue, d'une ligne de journal).

Le badge de dernière exécution affiché par le catalogue pointe toujours vers l'exécution la plus récente. Pour remonter plus loin, suivez le lien depuis la page Détail d'exécution ou utilisez le modèle d'URL ci-dessus avec l'identifiant plus ancien.


La page Détail d'exécution

La page se découpe en trois zones : en-tête, chronologie des étapes, flux de journal.

nomajde-daily-sync · run_a8c4dRUNNING✕ Annuler↻ RejouerDéclenché paruser:aliceDémarré02:30:00 · il y a 14 minNiveau de journalINFOÉTAPES · 4 / 7F0004✓ 1,2 sF0005✓ 8,4 sF9200✓ 2,1 sF9202▶ 4,0 sF9210en attenteF9860en attenteF9865en attenteJOURNAL EN DIRECT · diffusion02:30:00.083 INFO run started · trigger=user:alice02:30:00.085 INFO step F0004 · type=sql_copy · mode=overwrite02:30:01.190 INFO source rows=4128 · target rows=412802:30:01.295 INFO step F0004 · SUCCEEDED · 1.2 s02:30:01.298 INFO step F0005 · type=sql_copy · mode=overwrite02:30:03.412 INFO ▶ batch 1 of 4 · 25 000 rows02:30:05.840 INFO ▶ batch 2 of 4 · 50 000 rows02:30:08.144 INFO ▶ batch 3 of 4 · 75 000 rows02:30:09.652 INFO source rows=99 421 · target rows=99 42102:30:09.701 INFO step F0005 · SUCCEEDED · 8.4 s02:30:09.704 INFO step F9200 · type=sql_copy · mode=overwrite02:30:11.820 INFO step F9200 · SUCCEEDED · 2.1 s02:30:11.823 INFO step F9202 · type=sql_copy · mode=overwrite02:30:13.901 INFO ▶ batch 1 of 12 · 25 000 rows02:30:15.840 INFO ▶ batch 2 of 12 · 50 000 rows

L'en-tête

ÉlémentSignification
Identifiant de tâche · identifiant d'exécutionEn haut à gauche. Cliquer sur l'identifiant de tâche ouvre la carte du catalogue ; cliquer sur l'identifiant d'exécution le copie.
Badge d'étatQUEUED / RUNNING / SUCCEEDED / FAILED / CANCELED. En direct pour les exécutions en cours.
Déclenché parcron, user:<name>, api, cli. La piste d'audit.
Démarré / TerminéHorodatages dans le fuseau du navigateur (UTC au survol). Pour les exécutions en cours, seul Démarré apparaît.
Niveau de journalINFO ou DEBUG pour cette exécution. Utile lors d'un diagnostic — une exécution DEBUG se lit autrement qu'une exécution INFO.
Cliché des paramètresJSON dépliable montrant les paramètres fusionnés + op_kwargs tels que l'exécution les a réellement vus. La réponse d'audit à « qu'a reçu cette exécution ».

L'en-tête propose deux actions : ✕ Annuler (visible uniquement quand l'exécution est RUNNING) et ↻ Rejouer (visible uniquement sur une exécution terminée).


La chronologie des étapes

La colonne de gauche liste chaque étape dans l'ordre. Chaque ligne affiche :

ÉlémentSignification
Pastille d'état (●)Vert = SUCCEEDED, bleu (pulsant) = RUNNING, rouge = FAILED, gris = en attente ou CANCELED.
NomNom d'étape en monospace.
TypeSurvol de la ligne pour voir le type (sql_query, python, …).
DuréeSecondes ou millisecondes, renseignées à la fin de l'étape.

Cliquer sur une ligne d'étape filtre le journal pour n'afficher que les émissions de cette étape — précieux dans les exécutions longues où le journal global devient bruyant.

La pastille évolue en direct au fur et à mesure que l'exécuteur progresse à travers les étapes. Aucun rafraîchissement manuel n'est nécessaire — la page s'abonne à la room Socket.IO de l'exécution.

États d'étape

ÉtatQuand
pendingL'exécuteur n'a pas encore atteint cette étape.
RUNNINGL'exécuteur est dans cette étape.
SUCCEEDEDL'étape s'est terminée sans lever d'exception.
FAILEDL'étape a levé une exception (après les nouvelles tentatives, le cas échéant).
CANCELEDL'opérateur a cliqué sur ✕ Annuler, ou l'étape a été désactivée (raison skipped: disabled), ou une défaillance amont a stoppé l'exécution avant cette étape.

Cliquer sur une étape FAILED déplie la ligne pour afficher le message d'exception et la trace.


Le journal en direct

La colonne de droite est le flux de journal de l'exécution. Chaque ligne porte :

ÉlémentFormat
HorodatageHH:MM:SS.mmm dans le fuseau du navigateur.
NiveauINFO / WARNING / ERROR. Codé par couleur.
MessageLe texte transmis à ctx.log.info(…) ou émis par le framework.

Les frontières d'étape sont émises comme des lignes INFO :

02:30:01.295 INFO step F0004 · SUCCEEDED · 1.2 s
02:30:01.298 INFO step F0005 · type=sql_copy · mode=overwrite

Le journal devient ainsi auto-explicatif — il se lit de haut en bas et raconte le déroulé de l'exécution sans qu'il soit nécessaire de consulter la chronologie.

Diffusion en direct

Pendant qu'une exécution est en cours :

  • Une pulsation verte à côté de « JOURNAL EN DIRECT · diffusion » indique que le WebSocket est connecté.
  • Les lignes s'ajoutent en temps réel au fur et à mesure de leur émission.
  • La vue défile automatiquement vers le bas — un défilement vers le haut suspend ce défilement automatique jusqu'au retour en bas.

Après la fin de l'exécution

Le journal est persisté dans l'historique d'exécution et reconstruit depuis la base lors d'un rechargement de page. La diffusion en direct s'arrête ; le même contenu reste lisible. La rétention est de 90 jours par défaut (paramétrable dans Administration).

Filtrage et recherche

ActionComment
Filtrer sur une étapeCliquer sur la ligne de l'étape dans la colonne de gauche.
N'afficher que WARNING / ERRORBasculer la pastille de niveau au-dessus du journal.
Trouver une expression préciseCtrl/Cmd+F dans le navigateur (le journal est du texte brut).
Passer en DEBUGRelancer la tâche avec log_level = DEBUG dans la fenêtre Exécuter avec paramètres.

✕ Annuler

Visible tant que l'exécution est RUNNING. Le clic envoie un signal d'annulation :

Type d'étapeComportement à l'annulation
sql_query / sql_copyConnexion base de données fermée ; la transaction est annulée.
pythonTâche asyncio annulée ; les appels await en cours lèvent CancelledError. Une étape qui ne rend pas la main ne s'arrête qu'à son prochain point de contrôle.
httpRequête réseau interrompue.
ldap_syncConnexion LDAP fermée.

Les étapes restantes ne s'exécutent pas. L'état de l'exécution passe à CANCELED. Le journal enregistre run cancelled by user:<name> comme dernière ligne.

L'annulation est au mieux pour les étapes Python qui bouclent sans rendre la main à la boucle d'événements — voir Diagnostic pour le motif coopératif.


↻ Rejouer

Visible sur les exécutions terminées. Le clic ouvre une fenêtre Rejouer pré-remplie avec le cliché des paramètres de l'exécution d'origine — même forme que la fenêtre Exécuter avec paramètres :

ChampPré-rempli avec
log_levelLe niveau de l'exécution d'origine.
Paramètres partagésLes paramètres fusionnés de l'exécution d'origine.
op_kwargs par étapeLes kwargs par étape de l'exécution d'origine.
enabled par étapeL'état d'activation de l'exécution d'origine.

L'opérateur peut tout ajuster (cas typiques : changer target_connector de production vers un bac à sable, ou désactiver les étapes 1 à 5 pour rejouer uniquement la fin). La validation déclenche une nouvelle exécution — l'originale reste intacte.

Cas d'usage :

MotifAjustement Rejouer
« Relancer la même tâche avec les mêmes paramètres »Valider sans modification.
« Rejouer uniquement l'étape qui a échoué »Désactiver les étapes en amont ; laisser celle-ci active.
« Tester sur la pré-production »Modifier target_connector.
« Investiguer avec le SQL complet »Passer le niveau de journal en DEBUG.

Filtrer les exécutions (la vue catalogue Exécutions)

Une page « liste de toutes les exécutions » est accessible depuis le catalogue de tâches en cliquant sur le nom d'une tâche — elle ouvre la liste des exécutions de la tâche, triée du plus récent au plus ancien. Chaque ligne affiche :

ColonneQuoi
Identifiant d'exécutionCliquer pour ouvrir le Détail d'exécution.
ÉtatBadge coloré.
Déclenché parcron, user:…, api.
Démarré / DuréeHorodatage local + temps total de l'exécution.
Résumé des étapes« 7 / 7 ✓ » ou « 4 / 7 — échec à F9202 ».

Elle sert à :

  • Comparer les durées d'une exécution à l'autre (un ralentissement progressif dans un ETL).
  • Retrouver la dernière exécution réussie avant une régression.
  • Auditer les déclenchements manuels de la semaine écoulée.

Le catalogue Exécutions est par tâche — il n'existe pas aujourd'hui de vue globale « toutes les exécutions de toutes les tâches » ; le regroupement par tâche correspond à l'usage réel des opérateurs.


Pour la suite

  • Diagnostic — quand une exécution échoue ou se fige, comment en trouver la cause.
  • Notifications — recevoir une alerte en cas d'échec plutôt que d'actualiser la page.
  • Administration — rétention, verrou du planificateur, comportement au redémarrage.