prometheus/node_exporter · error
--collector.filesystem.fs-types-exclude and…
Error message
--collector.filesystem.fs-types-exclude and --collector.filesystem.fs-types-include are mutually exclusive
What it means
Validation guard in newFSTypeFilter: both --collector.filesystem.fs-types-exclude and --collector.filesystem.fs-types-include were supplied. Exclude and include filters are mutually exclusive; the collector cannot decide whether inclusion takes precedence, so it aborts construction of the filesystem collector.
Solutions
- Choose one mode: drop fs-types-include if you want to exclude some types, or drop fs-types-exclude if you want to whitelist types.
- If both behaviors are needed, run a second node_exporter instance with a different web.listen-address and one filter each.
- Audit deployment tooling (Helm charts, systemd units, scripts) that may append both flags unconditionally.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at collector/filesystem_common.go:288 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of prometheus/node_exporter@17ddd77c59 (2026-09-07).
Data as JSON: /api/errors/cddf32bf1b1b9cee.
Report an issue: GitHub.
Appendix: source
Thrown at collector/filesystem_common.go:288
}
func newFSTypeFilter(logger *slog.Logger) (deviceFilter, error) {
if *oldFSTypesExcluded != "" {
if !fsTypesExcludeSet {
logger.Warn("--collector.filesystem.ignored-fs-types is DEPRECATED and will be removed in 2.0.0, use --collector.filesystem.fs-types-exclude")
*fsTypesExclude = *oldFSTypesExcluded
} else {
return deviceFilter{}, errors.New("--collector.filesystem.ignored-fs-types and --collector.filesystem.fs-types-exclude are mutually exclusive")
}
}
if *fsTypesInclude != "" && !fsTypesExcludeSet {
logger.Debug("fs-types-exclude flag not set when fs-types-include flag is set, assuming include is desired")
*fsTypesExclude = ""
}
if *fsTypesExclude != "" && *fsTypesInclude != "" {
return deviceFilter{}, errors.New("--collector.filesystem.fs-types-exclude and --collector.filesystem.fs-types-include are mutually exclusive")
}
if *fsTypesExclude != "" {
logger.Info("Parsed flag --collector.filesystem.fs-types-exclude", "flag", *fsTypesExclude)
}
if *fsTypesInclude != "" {
logger.Info("Parsed flag --collector.filesystem.fs-types-include", "flag", *fsTypesInclude)
}
return newDeviceFilter(*fsTypesExclude, *fsTypesInclude), nil
}
View on GitHub (pinned to 17ddd77c59)