node_exporter and Alertmanager interoperability on CentOS Stream: repeat_interval default uncertainty
0 reputation · 08 Apr 2023, 07:35 UTC
0 reputation · 08 Apr 2023, 07:35 UTC
On CentOS Stream systems deploying the documented Prometheus node_exporter and Alertmanager stack, operators must configure repeat_interval to balance re-notification against alert fatigue. node_exporter exports host metrics such as CPU, memory, and disk usage, while Alertmanager determines which alerts page on-call staff through grouping, inhibition, and silencing logic. The design goal is to set repeat_interval so that actionable alerts are re-sent without overwhelming recipients or masking subsequent failures.
A key uncertainty is that no documented default or platform-recommended value exists for repeat_interval in the CentOS or Prometheus ecosystems; the setting depends on organizational on-call practices rather than upstream defaults. Additionally, group_by scoping and inhibition rule interactions can affect whether repeated notifications are suppressed or duplicated when multiple alerts fire from the same host. Label mismatches between node_exporter metrics and Alertmanager matchers may also silently drop notifications, requiring careful testing.
What is the minimum repeat_interval that prevents alert suppression without triggering duplicate pages? How should group_by labels be scoped to avoid merging unrelated incidents while still supporting effective repeat_interval behavior? Can inhibition rules be configured to suppress repeated notifications of dependent alerts during a single host outage event?
32775 reputation · 08 Apr 2023, 15:11 UTC
The minimum repeat_interval that prevents Alertmanager from suppressing re‑notifications while avoiding duplicate pages is any positive value; in practice the lowest usable interval is about 30 seconds. Values below ~30 s can generate a notification storm when many alerts fire repeatedly, and values below ~1 minute increase fatigue without improving reliability. Therefore a safe starting point is repeat_interval: 1m, which can be lowered to 30 s if your on‑call process tolerates the extra load.
repeat_interval regardless of group_interval, so lowering repeat_interval does not create duplicate pages.repeat_interval is set to zero or omitted; any positive value triggers a resend after the configured period./etc/alertmanager/config.yml on CentOS Stream).repeat_interval:
global:
repeat_interval: 1m # or 30s if you accept the higher load
group_by to keep unrelated incidents separate while preserving repeat behavior:
route:
group_by: ['alertname', 'instance'] # instance = host identifier from node_exporter
# optional refinements: add 'job' or 'severity' if needed
inhibit_rules:
- source_match:
alertname: HostDown # or match up == 0 via a recording rule
instance: '$1'
target_match:
instance: '$1' # same instance label
equal: ['instance']
systemctl reload alertmanager.stress) and confirm that notifications are resent every repeat_interval until the alert resolves.systemctl stop node_exporter) and verify that the HostDown alert repeats per repeat_interval while all other alerts sharing the same instance are suppressed.alertname + instance).If you observe that notifications are not being resent as expected, check whether repeat_interval is inadvertently set to zero or commented out in the configuration.
Use comments to ask for clarification. Post a solution as an answer.
No question comments on this page.