Le tableau de bord dans Filament#

Pour suivre les workflows d’une application Laravel depuis un panneau Filament, installez gplanchat/durable-filament (Paquets) et enregistrez le plugin sur le panneau :

use Gplanchat\Durable\Filament\DurableFilamentPlugin;

$panel->plugin(DurableFilamentPlugin::make());

Le panneau affiche alors Exécutions Durable dans sa navigation. Le plugin fonctionne sur Filament 3 et 4, lit le catalogue que gplanchat/durable-laravel lie dans le conteneur (en mémoire, Illuminate ou Temporal) et est en lecture seule.

Captures d’écran#

La page Exécutions Durable de Filament : état du backend, filtres, compteurs par issue et liste des exécutions

Exécutions Durable, sur quatre exécutions d’un workflow de commande. Les compteurs en comptent une en attente d’un worker.

La page d’une exécution sous Filament, en attente d’un minuteur, avec sa frise d’historique

La page d’order/4244 : ce qu’elle attend, et une frise d’historique où reserveStock est hachuré pour le temps passé dans la file.

Ce que la page propose#

  • L’état du backend, daté.
  • Des compteurs par issue, avec un nombre En attente d’un worker, sur les exécutions de la page.
  • Des filtres sur l’issue, et sur le nom du workflow et le début de l’identifiant d’exécution là où le backend peut les appliquer. Les filtres restent posés d’une page à la suivante.
  • La présence des workers, au-dessus de la liste, sur le backend Temporal : pour chaque rôle de durable:temporal-worker, workflow et activity, si un worker a interrogé sa file de tâches dans les 120 dernières secondes. Sur le backend Illuminate, le panneau affiche « Impossible de demander » : la file de Laravel ne tient aucune liste des processus qui lancent php artisan queue:work. Le backend en mémoire exécute chaque tâche dans le processus qui la lance, et la page n’affiche aucun panneau.
  • La liste des exécutions, 20 par page, en avant par curseur. Chaque ligne porte l’identifiant d’exécution (un lien vers l’exécution), l’issue, le workflow, la date de démarrage et une note (waiting for a worker, waiting on …).
  • Une page d’exécution, ouverte depuis une ligne : l’issue, ce qu’elle attend, ses opérations Nexus quand le catalogue sait les lister, et son historique, un bloc par action, sous une frise. Voir Lire une exécution.

Ce qu’elle ne montre pas#

La page n’a pas de ligne de présence pour durable:nexus-worker. Voir Parité.

Langue et contenus enregistrés#

Anglais et français. Un contenu enregistré se déplie à la demande et est masqué par ce à quoi votre application lie Gplanchat\Durable\Observation\PayloadRedactorInterface dans le conteneur ; sinon, le masquage par nom de clé s’applique.