Documentation

Référence `vectron.toml`

Référence exhaustive du fichier principal de configuration Vectron, avec défauts et règles d'héritage.

Cette page est la référence normative de vectron.toml.

Quand un champ est optionnel, le tableau indique si son comportement vient:

  • d’une valeur par défaut fixe
  • d’un héritage depuis un champ parent
  • d’une règle runtime dérivée

Règles de résolution

  • Les chemins relatifs sont résolus depuis le dossier contenant vectron.toml.
  • Les champs de processus peuvent surcharger les champs globaux.
  • Certains champs ont une valeur effective par défaut au runtime même si le champ TOML est absent.
  • Au moins une entrée [[process]] doit exister pour que la configuration soit valide.

Sections de premier niveau

ChampTypeRequisDéfaut / Héritage / DérivationNotes
globaltableNonTable optionnelleDéfauts globaux appliqués aux processus
processtableau de tablesOuiAucunAu moins une entrée [[process]] est requise
log_templatestableNonDéfaut: table videPresets de rendu nommés

[global]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
log_dircheminNonDéfaut: .vectron/logsDossier des logs fichiers
beforestring ou tableau de stringsNonDéfaut: aucunCommande(s) de preflight exécutées avant le démarrage
show_timestampsbooléenNonValeur effective par défaut: trueHérite vers les processus
log_modeenumNonDéfaut: consoleValeurs: console, files, both
log_formatenumNonDéfaut: textValeurs: text, logfmt, json, json_pretty
lifecycleenumNonDéfaut: fail-fastPolitique de lifecycle actuelle
readinesstableNonDéfaut: aucunModèle de readiness global
colorcouleurNonDéfaut: aucunCouleur par défaut des processus ; accepte des couleurs CSS-like comme red ou #808080
log_templatetableNonDéfaut: aucunBinding par défaut d’un preset de rendu
disable_color_envbooléenNonDéfaut: falseDésactive les variables ANSI des processus enfants
disabled_groupstableau de stringsNonDéfaut: []Groupes désactivés sauf réactivation explicite
disabled_labelstableau de stringsNonDéfaut: []Labels désactivés sauf réactivation explicite
cleanup_logsbooléenNonDéfaut: trueRecrée log_dir au démarrage
envmap de stringsNonDéfaut: {}Variables d’environnement de base
env_filecheminNonDéfaut: aucunCharge après global.env
instance_env_suffixstringNonDéfaut: aucunDoit contenir {index}
port_startentierNonDéfaut: 5000Base d’allocation des ports ; alias legacy: port_base
port_stepentierNonDéfaut: 100Ecart de ports entre processus
formation_port_stepentierNonDéfaut: 1Ecart de ports entre instances
shutdown_timeout_secsentierNonDéfaut: 90Fenêtre d’arrêt gracieux avant escalation
working_dircheminNonDéfaut: aucunComportement effectif: racine du workspace / de la config si absent
tuitableNonDéfaut: table vide avec seuils par défautRéglages spécifiques à la TUI

[global.readiness]

Readiness basée sur les logs

ChampTypeRequisDéfaut / Héritage / DérivationNotes
typestringOuiValeur requise: logSélectionne la readiness par logs
readytableNonDéfaut: aucunMotif de succès
errortableNonDéfaut: aucunMotif d’erreur
ready.patternstringOui, si ready existeAucunMotif regex
ready.streamenumNonDéfaut: stdoutValeurs: stdout, stderr
error.patternstringOui, si error existeAucunMotif regex
error.streamenumNonDéfaut: stdoutValeurs: stdout, stderr

Au moins un de ready ou error doit être présent.

Readiness TCP

ChampTypeRequisDéfaut / Héritage / DérivationNotes
typestringOuiValeur requise: tcpSélectionne la readiness TCP
hoststringNonDéfaut: 127.0.0.1Hôte de probe
portstring ou entierNonDéfaut: autoauto suit le port alloué à l’instance
interval_msentierNonDéfaut: 500Intervalle de polling

[global.log_template]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
presetstringNonDéfaut: aucunApplique aux deux flux sauf surcharge
stdout_presetstringNonDéfaut: aucunSurcharge spécifique stdout
stderr_presetstringNonDéfaut: aucunSurcharge spécifique stderr

[global.tui.metrics.thresholds]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
cpu_warnfloatNonDéfaut: 60.0Seuil warning CPU par instance
cpu_critfloatNonDéfaut: 85.0Seuil critique CPU par instance
rss_warnbytes ou string IECNonDéfaut: 256MiBSeuil warning RSS par instance
rss_critbytes ou string IECNonDéfaut: 1GiBSeuil critique RSS par instance
total_cpu_warnfloatNonDéfaut: aucun ; dérivé si absentSeuil total pour la barre de statut
total_cpu_critfloatNonDéfaut: aucun ; dérivé si absentSeuil total pour la barre de statut
total_rss_warnbytes ou string IECNonDéfaut: aucun ; dérivé si absentSeuil total pour la barre de statut
total_rss_critbytes ou string IECNonDéfaut: aucun ; dérivé si absentSeuil total pour la barre de statut

Quand les seuils totaux sont absents, la TUI dérive les totaux à partir des seuils par instance.

[[process]]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
namestringOuiAucunIdentifiant stable du processus
commandstringOuiAucunLigne de commande du processus enfant
instancesentierNonDéfaut: 1Nombre de copies à lancer
working_dircheminNonHérite de global.working_dir ; valeur effective par défaut: racine du workspace / de la configDossier de lancement
log_modeenumNonHérite de global.log_mode ; valeur effective par défaut: consoleValeurs: console, files, both
log_formatenumNonHérite de global.log_format ; valeur effective par défaut: textValeurs: text, logfmt, json, json_pretty
groupstringNonDéfaut: aucunGroupe unique utilisé par la TUI et les filtres de groupes
labelstableau de stringsNonDéfaut: []Labels utilisés uniquement par les filtres de démarrage
show_timestampsbooléenNonHérite de global.show_timestamps ; valeur effective par défaut: trueAffichage des timestamps en console/TUI
lifecycleenumNonHérite de global.lifecycle ; valeur effective par défaut: fail-fastPolitique de lifecycle
readinesstableNonHérite de global.readinessSurcharge de readiness par processus
colorcouleurNonDéfaut: aucunCouleur du processus ; accepte des couleurs CSS-like comme red ou #808080
instance_colorstableau de couleursNonDéfaut: []Couleurs CSS-like optionnelles par instance
log_templatetableNonHérite de global.log_templateSurcharge de preset de rendu
disable_color_envbooléenNonHérite de global.disable_color_env ; valeur effective par défaut: falseSurcharge du comportement ANSI enfant
envmap de stringsNonDéfaut: {}Variables d’environnement du processus
env_filecheminNonDéfaut: aucunCharge après l’env du processus
instance_env_suffixstringNonHérite de global.instance_env_suffixDoit contenir {index}
port_envstringNonDéfaut du champ: aucun ; variable effective: PORTSurcharge la variable d’environnement qui reçoit le port alloué
port_startentierNonDérivé du curseur courant d’allocationPas de valeur constante fixe
port_stepentierNonHérite de global.port_step ; valeur effective par défaut: 100Écart de ports pour ce processus
formation_port_stepentierNonHérite de global.formation_port_step ; valeur effective par défaut: 1Écart pour la prochaine base d’allocation
log_dircheminNonHérite de global.log_dirDossier de logs fichiers du processus
tui.metrics.thresholds.cpu_warnfloatNonHérite du seuil global ; valeur effective par défaut: 60.0Surcharge par processus
tui.metrics.thresholds.cpu_critfloatNonHérite du seuil global ; valeur effective par défaut: 85.0Surcharge par processus
tui.metrics.thresholds.rss_warnbytes ou string IECNonHérite du seuil global ; valeur effective par défaut: 256MiBSurcharge par processus
tui.metrics.thresholds.rss_critbytes ou string IECNonHérite du seuil global ; valeur effective par défaut: 1GiBSurcharge par processus

[log_templates.<name>]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
extendsstringNonDéfaut: aucunHérite d’un autre preset
fieldstableNonDéfaut: aucunLayout commun stdout et stderr
stdout_fieldstableNonDéfaut: aucunLayout spécifique stdout
stderr_fieldstableNonDéfaut: aucunLayout spécifique stderr

[log_templates.<name>.*_fields]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
separatorstringNonValeur effective par défaut: " "Insère entre les champs rendus
missingstringNonDéfaut: aucunTexte de remplacement pour les clés absentes
fieldstableau de tablesNonDéfaut: []Rendu dans l’ordre

[[log_templates.<name>.*_fields.fields]]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
keystringOuiAucunClé extraite
prefixstringNonDéfaut: aucunAjoute avant la valeur
suffixstringNonDéfaut: aucunAjoute après la valeur
defaultstringNonDéfaut: aucunValeur fallback si la cle est absente
mapmap de stringsNonDéfaut: {}Remapping des valeurs
formatenumNonValeur effective par défaut: noneValeurs: none, lowercase, uppercase, number, duration_ms
visible_ifenumNonValeur effective par défaut: alwaysValeurs: always, present, non_empty
colorcouleurNonDéfaut: aucunCouleur de la valeur
color_rulestableau de tablesNonDéfaut: []Surcharges couleur basées sur regex

Les couleurs sont parsées comme des strings CSS-like. Exemples courants: couleurs nommées comme red et couleurs hex comme #808080 ou #112233.

[[log_templates.<name>.*_fields.fields.color_rules]]

ChampTypeRequisDéfaut / Héritage / DérivationNotes
regexstringOuiAucunRegex matchée contre la valeur du champ
colorcouleurOuiAucunCouleur CSS-like appliquée quand regex matche

Exemple:

[log_templates.api.fields]
fields = [
  { key = "level", color_rules = [
    { regex = "WARN|ERROR", color = "red" },
  ] },
]

Regles de validation

La validation inclut notamment:

  • au moins un processus
  • des commandes non vides
  • des noms, groupes et labels de processus valides
  • des labels valides pour disabled_groups et disabled_labels
  • des valeurs valides pour port_step et formation_port_step
  • l’absence de débordement dans l’allocation de ports
  • l’existence des env_file référencés
  • des configurations de readiness valides
  • des références de log templates valides
  • des instance_env_suffix valides contenant {index}

Source de vérité

Utilisez vectron.example.toml comme exemple complet et commenté de démarrage. Utilisez cette page quand vous avez besoin du comportement exact d’un champ.