Skip to Content
Mélodium 0.10.3 is now available!
BlogObserver l'exécution d'un programme Mélodium : mode debug et reporting d'exécution

Observer l’exécution d’un programme Mélodium : mode debug et reporting d’exécution

Envoyer un traitement vers un moteur distant, et « ça s’exécute quelque part » cesse de suffire dès qu’une exécution prend plus longtemps que prévu. Mélodium 0.10.0 a ajouté un mode d’exécution debug/dump ainsi qu’un reporting d’exécution avec identifiants de run et de groupe d’exécution ; la 0.10.1 a complété le tout avec le point d’entrée et les paramètres de chaque run. Ensemble, c’est la différence entre deviner et réellement observer.

--debug : un dump local

melodium run --debug ./run.debug Compo.toml

--logs <chemin> et --debug <chemin> écrivent les logs d’exécution et un dump de debug dans un fichier au fur et à mesure, plutôt que seulement sur la sortie standard. Depuis la 0.10.2, les deux sont vidés à chaque ligne et à chaque événement plutôt que d’attendre la fin de l’exécution : si un run meurt en cours de route, le fichier contient déjà tout jusqu’à ce moment-là.

--api-report : un rapport distant

MELODIUM_API_TOKEN=... melodium run --api-report Compo.toml

--api-report envoie le statut et les logs à l’API Mélodium au fur et à mesure de l’exécution, au lieu de (ou en plus de) les écrire localement. Chaque run rapporté porte un identifiant de run, un identifiant de groupe d’exécution, et, depuis la 0.10.1, le point d’entrée et les paramètres avec lesquels il a été appelé : de quoi reconstituer côté réception ce qui s’est réellement passé, pas seulement le fait que quelque chose s’est passé.

Ce qui reçoit réellement ces informations

C’est exactement ce sur quoi s’appuient plusieurs exemples showcase de Mélodium pour confier l’exécution à un worker provisionné puis la suivre. ci_pipeline, distributed_llm_cluster, et ci_failure_triage s’exécutent tous avec --api-report contre un jeton Cadence.CI, précisément pour que le tableau de bord ait quelque chose à afficher pendant qu’une étape CI ou une tâche d’inférence distribuée est en cours sur une machine que vous ne regardez pas.

En local, --debug suffit pour voir a posteriori ce qu’un programme a fait. Dès que l’exécution part sur une machine où vous n’avez pas de terminal ouvert, c’est --api-report qui la rend visible.