Skip to content

feat: add raid mode for monitoring storage pool raid status#63

Open
animaartificialis wants to merge 3 commits into
wernerfred:masterfrom
animaartificialis:master
Open

feat: add raid mode for monitoring storage pool raid status#63
animaartificialis wants to merge 3 commits into
wernerfred:masterfrom
animaartificialis:master

Conversation

@animaartificialis
Copy link
Copy Markdown

Adds a raid mode that monitors the status of every Synology storage pool via SNMP. Behaviour:

raid_status mapping
1 (Normal) OK
2 (Repairing), 3 (Migrating), 4 (Expanding), 5 (Deleting), 6 (Creating), 7 (RaidSyncing), 8 (RaidParityChecking), 9 (RaidAssembling), 10 (Canceling) WARNING
11 (Degrade), 12 (Crashed) CRITICAL
anything else UNKNOWN

Notes:

  • The previous severity is preserved across iterations, so a WARNING pool can never lower the state below a CRITICAL one observed earlier in the loop.
  • Repairing(2) is included in the WARNING set (it's an intermediate operation, not a failure).
  • README updated with the new mode.

This is an alternative implementation of #62 that addresses the issues raised in #62 (comment) (severity downgrade, missing status 2, README↔code mismatch, explicit Degrade/Crashed classification).

animaartificialis and others added 3 commits May 20, 2026 21:48
Adds a `raid` mode that surfaces Synology raid status (OID
1.3.6.1.4.1.6574.3.1.1.x) for every storage pool: Normal → OK,
intermediate states (Repairing/Migrating/Expanding/.../Canceling)
→ WARNING, Degrade and Crashed → CRITICAL, anything else → UNKNOWN.

The previous severity is preserved across iterations so a WARNING
pool can never downgrade a CRITICAL one. Status "2" (Repairing)
is included in the WARNING set. README updated with the new mode.

This is an alternative take on wernerfred#62 incorporating review feedback
from issuecomment-4502847249.
- New --warning-free / --critical-free args: PERC_FREE thresholds
  (check_disk -w/-c convention). Precedence over upstream -w/-c.
- Storage perfdata gets `;;;0;<storage_size>` (value;warn;crit;min;max)
  so Graphite-backed forecast plugins can compute 'days until full'.

Backwards-compatible. _parse_pct accepts '10', '10%', ' 5 % '.
Patch from Imatic IT; 6 threshold scenarios verified locally.
Previously emitted `status=7` only — opaque without consulting the MIB.
Now emits `status=7 (RaidSyncing)` using a mapping derived from the
comment block already documenting the codes.

Suggested by Imatic IT (operator hit status=7 in production, had to
look up the meaning manually).
@animaartificialis
Copy link
Copy Markdown
Author

Pushed follow-up e5afb90: raid output now emits status=7 (RaidSyncing) instead of bare status=7. Labels derive from the comment block already documenting the codes. Suggested by an operator who hit status=7 in production and had to consult the MIB to interpret it.

If you'd prefer raid status labels (and the unrelated fa56408 storage threshold args from an earlier downstream patch) as separate PRs, happy to split — just let me know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants