The two-level configuration model
How global configuration templates and per-server overrides cascade, so changing a fleet-wide default still reaches every host that has a local exception.
Last updated 2026-08-26
Configuring a fleet host by host does not scale, and configuring it only globally does not survive contact with reality - there is always one database server that needs a different disk threshold. Servers Sentinel resolves this the way CSS does: defaults cascade, and a local rule overrides one key without replacing the rest.
How the merge works
- A global template defines the defaults for a configuration kind - collection intervals, thresholds, which collectors are enabled.
- A server may carry an override: a patch containing only the keys that differ.
- The agent is served the effective configuration, which is the template deep-merged with the override.
The important consequence is what happens when you edit the template. Because the override is a patch rather than a copy, a host that overrides disk.threshold still receives the new cpu.interval you just set globally. With copy-on-override - the model most tools use - that host would have quietly frozen at the values it had when the exception was created.
A worked example
The global template for the disk collector:
{
"interval": "60s",
"warn_percent": 85,
"critical_percent": 95,
"ignore_mounts": ["/snap"]
}The database server, which runs hot on disk by design, overrides one key:
{
"warn_percent": 92
}What the agent on that host actually receives:
{
"interval": "60s",
"warn_percent": 92,
"critical_percent": 95,
"ignore_mounts": ["/snap"]
}Raise critical_percent to 97 in the template later and this host gets 97 too, while keeping its 92. That is the whole point.
Where to draw the line
- Put anything that describes policy in the template: how often to collect, what counts as too full, which collectors are on.
- Put anything that describes this one machine in the override: a mount point to ignore, a service name that differs, a threshold the workload justifies.
- If you find yourself writing the same override on more than three hosts, it is not an exception - make a server group and template it.