Utilisez l’sortie JSON CLI¶
Le Flower CLI peut retourner un sortie JSON pour automatiser et intégrer avec d’autres outils.
Note
L’sortie JSON est disponible pour les commandes documentées ici car elles opèrent à travers l’API de contrôle SuperLink. Cela inclut les SuperLinks distants ainsi que le SuperLink local géré utilisé par les profils de simulation locale marqués avec address = ":local:".
Ce guide montre l’sortie JSON pour :
flwr runflwr listflwr stop
flwr run JSON sortie¶
La commande flwr run soumet une application Flower en cours d’exécution. Pour une application locale, la CLI construit d’abord un FAB et puis lance l’exécution à travers l’API de contrôle.
Sortie par défaut représentatif :
$ flwr run . local --stream
Starting local SuperLink on 127.0.0.1:39093...
Successfully started run 1859953118041441032
...
Pour retourner un JSON structuré au lieu de cela, utilisez --format json :
$ flwr run . local --format json
{
"success": true,
"run-id": "1859953118041441032",
"fab-id": "flwrlabs/myawesomeapp",
"fab-name": "myawesomeapp",
"fab-version": "1.0.0",
"fab-hash": "014c8eb3",
"fab-filename": "flwrlabs.myawesomeapp.1-0-0.014c8eb3.fab"
}
L’sortie JSON du flwr run contient :
success:truesi la commande a réussirun-id: l’ID de run soumisfab-id: l’identifiant de l’application Flowerfab-name: le nom de l’application Flowerfab-version: la version de l’application Flowerfab-hash: le hash FAB courtfab-filename: le fichier FAB construit
Si la commande échoue, le JSON de sortie contient success: false et error-message.
flwr list JSON sortie¶
La commande flwr list interroge les exécutions en cours à partir de la connexion SuperLink actuelle.
Sortie par défaut représentatif :
$ flwr list
📄 Listing all runs...
┏━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━┓
┃ Run ID ┃ Federation ┃ App ┃ Status ┃ Elapsed ┃ Status Changed @ ┃
┡━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━┩
│ 1859953118041441032 │ @none/default │ @flwrlabs/myawesomeapp==1.0.0 │ finished:completed │ 55s │ 2024-12-16 11:13:28Z │
├──────────────────────┼───────────────┼─────────────────────────────────┼────────────────────┼─────────┼──────────────────────┤
│ 14200740657011601420 │ @none/default │ @flwrlabs/myawesomeapp==1.0.0 │ running │ 9s │ 2024-12-16 12:18:39Z │
└──────────────────────┴───────────────┴─────────────────────────────────┴────────────────────┴─────────┴──────────────────────┘
Pour retourner un JSON structuré au lieu de cela :
$ flwr list --format json
{
"success": true,
"runs": [
{
"run-id": "1859953118041441032",
"federation": "@none/default",
"fab-id": "flwrlabs/myawesomeapp",
"fab-name": "myawesomeapp",
"fab-version": "1.0.0",
"fab-hash": "014c8eb3014c8eb3014c8eb3014c8eb3014c8eb3014c8eb3014c8eb3014c8eb3",
"status": "finished:completed",
"status-details": "N/A",
"elapsed": 55.0,
"pending-at": "2024-12-16 11:12:33Z",
"starting-at": "2024-12-16 11:12:33Z",
"running-at": "2024-12-16 11:12:33Z",
"finished-at": "2024-12-16 11:13:28Z",
"network-traffic": {
"inbound-bytes": 12345,
"outbound-bytes": 6789,
"total-bytes": 19134
},
"compute-time": {
"serverapp-seconds": 5.2,
"clientapp-seconds": 42.7,
"total-seconds": 47.9
}
},
{
"run-id": "14200740657011601420",
"federation": "@none/default",
"fab-id": "flwrlabs/myawesomeapp",
"fab-name": "myawesomeapp",
"fab-version": "1.0.0",
"fab-hash": "014c8eb3014c8eb3014c8eb3014c8eb3014c8eb3014c8eb3014c8eb3014c8eb3",
"status": "running",
"status-details": "N/A",
"elapsed": 9.0,
"pending-at": "2024-12-16 12:18:39Z",
"starting-at": "2024-12-16 12:18:39Z",
"running-at": "2024-12-16 12:18:39Z",
"finished-at": "N/A",
"network-traffic": {
"inbound-bytes": 4567,
"outbound-bytes": 2345,
"total-bytes": 6912
},
"compute-time": {
"serverapp-seconds": 0.6,
"clientapp-seconds": 8.1,
"total-seconds": 8.7
}
}
]
}
Chaque entrée sous runs contient :
run-id: l’ID de runfederation: l’identifiant de fédérationfab-id/fab-name/fab-version/fab-hash: les métadonnées de l’application Flowerstatus: le statut actuel de runstatus-details: additional status detail textelapsed: le temps d’exécution en secondespending-at/starting-at/running-at/finished-at: horodatages d’exécutionnetwork-traffic: octets entrants, sortants et totauxcompute-time: temps de calcul en secondes pour ServerApp, ClientApp et total
Pour retourner la vue détaillée pour une seule exécution, utilisez :
$ flwr list --run-id 1859953118041441032 --format json
Cela retourne la même structure de niveau supérieur avec une seule entrée dans runs.
flwr stop JSON sortie¶
La commande flwr stop arrête une exécution soumise ou en cours par ID d’exécution.
Sortie par défaut représentatif :
$ flwr stop 1859953118041441032
Stopping run ID 1859953118041441032...
Run 1859953118041441032 successfully stopped.
Pour retourner un JSON structuré au lieu de cela :
$ flwr stop 1859953118041441032 --format json
{
"success": true,
"run-id": "1859953118041441032"
}
Si la commande échoue, le JSON de sortie contient success: false et error-message.