From 15a10ac92d7ae63a83d99eb4eec76572789446b1 Mon Sep 17 00:00:00 2001 From: xenon898 <88700568+xenon898@users.noreply.github.com> Date: Thu, 10 Sep 2026 16:30:39 +0530 Subject: [PATCH] docs: clarify that time intervals are not inherited by child routes The docs state that optional configuration parameters are inherited from the parent node if not set, but mute_time_intervals and active_time_intervals are unconditionally set from the current route's config in newRoute (dispatch/route.go) without the nil-check that the other inherited options use. As a result they are never inherited, and a parent route's time intervals do not mute or gate its subtree. Document the actual behavior so users don't expect a parent's time intervals to apply to child routes. Docs-only, no functional change. Closes #3211 Signed-off-by: xenon898 <88700568+xenon898@users.noreply.github.com> --- docs/configuration.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/configuration.md b/docs/configuration.md index 80c1a2bd1a..435dcff1ea 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -195,7 +195,9 @@ Routing-related settings allow configuring how alerts are routed, aggregated, th ### `` A route block defines a node in a routing tree and its children. Its optional -configuration parameters are inherited from its parent node if not set. +configuration parameters are inherited from its parent node if not set, with the +exception of `mute_time_intervals` and `active_time_intervals`, which are never +inherited and apply only to the route on which they are defined (see below). Every alert enters the routing tree at the configured top-level route, which must match all alerts (i.e. not have any configured matchers). @@ -334,6 +336,11 @@ labels: # When a route is muted it will not send any notifications, but # otherwise acts normally (including ending the route-matching process # if the `continue` option is not set.) +# +# Note: mute_time_intervals is not inherited by child routes. It only +# affects notifications sent by the route on which it is defined. To mute an +# entire subtree, set mute_time_intervals on each descendant route that has a +# receiver. mute_time_intervals: [ - ...] @@ -344,6 +351,9 @@ mute_time_intervals: # The route will send notifications only when active, but otherwise # acts normally (including ending the route-matching process # if the `continue` option is not set). +# +# Note: active_time_intervals is not inherited by child routes, and applies +# only to the route on which it is defined. active_time_intervals: [ - ...]