Documentation
Readiness log partagée
Évitez de répéter la même probe de readiness sur chaque processus.
Quand utiliser cet exemple
Utilisez ce pattern quand plusieurs services impriment le même signal de démarrage. Au lieu de répéter le même bloc [process.readiness] partout, définissez-le une seule fois sous [global.readiness].
Exemple
[global]
log_mode = "both"
log_format = "json"
[global.readiness]
type = "log"
[global.readiness.ready]
stream = "stdout"
pattern = "service_ready"
[[process]]
name = "billing-public"
command = "./tools/run_service.sh billing-public"
[[process]]
name = "billing-worker-rollup"
command = "./tools/run_service.sh billing-worker-rollup"
[[process]]
name = "billing-grpc"
command = "./tools/run_service.sh billing-grpc"Pourquoi cela fonctionne
Chaque processus hérite de global.readiness. Cela garde les longues listes de services courtes et rend le contrat explicite: un service est prêt quand il imprime service_ready sur stdout.
Ce pattern fonctionne surtout quand tous les services passent par un launcher ou framework commun qui émet le même événement de démarrage.
Valeurs par défaut utiles ici
process.readiness: hérite deglobal.readinessready.stream: défautstdout, affiche explicitement ici pour clartéinstances: défaut1show_timestamps: valeur effective par défauttruelog_dir: défaut.vectron/logs
Ce qu’il faut personnaliser
- Remplacez
service_readypar l’événement exact émis par vos services. - Utilisez une surcharge
readinessau niveau processus pour les services qui ont besoin d’un signal différent. - Gardez un motif assez strict pour éviter qu’une ligne de log normale marque un service comme prêt.