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 de global.readiness
  • ready.stream : défaut stdout, affiche explicitement ici pour clarté
  • instances : défaut 1
  • show_timestamps : valeur effective par défaut true
  • log_dir : défaut .vectron/logs

Ce qu’il faut personnaliser

  • Remplacez service_ready par l’événement exact émis par vos services.
  • Utilisez une surcharge readiness au 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.

Voir aussi