Documentation
Shared log readiness
Avoid repeating the same readiness probe on every process.
When to use this
Use this pattern when several services print the same startup signal. Instead of repeating the same [process.readiness] block everywhere, define it once under [global.readiness].
Example
[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"Why this works
Each process inherits global.readiness. This keeps large service lists short and makes the contract explicit: a service is ready when it prints service_ready on stdout.
This works best when all services are wrapped by a common launcher or framework that emits the same startup event.
Defaults involved here
process.readiness: inheritsglobal.readinessready.stream: defaultstdout, shown explicitly here for clarityinstances: default1show_timestamps: effective defaulttruelog_dir: default.vectron/logs
What to customize
- Replace
service_readywith the exact ready event emitted by your services. - Use a process-level
readinessoverride for services that need a different signal. - Keep the pattern narrow enough that normal log lines cannot accidentally mark a service ready.