A preset can now read a vendor's tables: one row per disk, volume, fan or
sensor. The scheduled poll discovers the rows by walking the device: on its
first poll, after a save, and then hourly, and only while it answers. Each row
becomes readings named by the device's own labels ("Disk 1 status"). Only the
columns a row answered are asked for.
A vendor status, whether a code (Synology) or a word (Asustor), is a state
reading. It is stored as a level (0 OK, 1 busy, 2 warning, 3 failed), so one
alert rule covers any vendor, and shown in the device's own word.
- Synology: system, power and fan status and temperature; per disk: status,
health, temperature and bad sectors; per volume: RAID state (scrubbing,
parity check, rebuild, degraded), free space and size.
- Asustor: per disk: status, SMART and temperature; per volume: status, free
space and size; CPU and system temperature, free memory and fans.
From ADM's ASUSTOR-DISK-MIB and ASUSTOR-SYSTEM-MIB.
- Linux server: plus each physical disk's 1-minute busy % (UCD-DISKIO-MIB).
Migration snmp_002_table_rows adds tables, tables_at and texts to
snmp_devices. Milestone 530.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -18,7 +18,7 @@ def _device(name, *, polled=timedelta(seconds=30), error=None):
|
||||
community="s3cret", v3_user="", v3_auth_key="authkey", v3_priv_key="privkey",
|
||||
presets=[], interfaces="", custom=None, host_id=None,
|
||||
last_polled_at=NOW - polled if polled else None, last_ok_at=NOW - timedelta(hours=1),
|
||||
last_error=error, missing=[])
|
||||
last_error=error, missing=[], tables={}, texts={})
|
||||
|
||||
|
||||
def test_only_a_device_whose_poll_failed_is_an_overview_finding():
|
||||
|
||||
Reference in New Issue
Block a user