Compare commits

...

2 Commits

Author SHA1 Message Date
4d6becffa1 add disk counter 2025-03-11 20:27:15 +01:00
493a395150 optimize codestyle 2025-03-11 18:59:15 +01:00

View File

@@ -8,7 +8,7 @@
- https://easysnmp.readthedocs.io/en/latest/session_api.html
"""
__version__ = '0.13.1'
__version__ = '0.14.0'
__author__ = 'anima'
# imports
@@ -491,6 +491,7 @@ class SNMPSynologyDiskHealthResource(nagiosplugin.Resource, SNMPSynologyDisk):
Generator[nagisplugin.Metric]: multiple metric elements (yield)
"""
disks = self.get_disks()
yield nagiosplugin.Metric(name='disk_count', value=len(disks), context='disk_scalar_context')
for disk in disks:
yield nagiosplugin.Metric(name=disk['id'], value=disk, context='disk_status_context')
yield nagiosplugin.Metric(name=disk['id'], value=disk, context='disk_health_context')
@@ -759,78 +760,94 @@ def main():
# dice which check will be run bases on check_mode
match args.check_mode:
case 'system':
check = nagiosplugin.Check(SNMPSynologySystemResource(session=session),
check = nagiosplugin.Check(
SNMPSynologySystemResource(session=session),
SNMPSynologySystemContext(name='system_context'),
nagiosplugin.Summary())
check.name = "System Status"
case 'temperature':
check = nagiosplugin.Check(SNMPSynologyTemperatureResource(session=session),
check = nagiosplugin.Check(
SNMPSynologyTemperatureResource(session=session),
nagiosplugin.ScalarContext(name='temperature_scalar_context', warning=args.warning, critical=args.critical),
nagiosplugin.Summary())
check.name = "System Temperature"
case 'powersupply':
check = nagiosplugin.Check(SNMPSynologyPowerSupplyResource(session=session),
check = nagiosplugin.Check(
SNMPSynologyPowerSupplyResource(session=session),
SNMPSynologyPowerSupplyContext(name='powersupply_context'),
nagiosplugin.Summary())
check.name = "Power Supply Status"
case 'fans':
check = nagiosplugin.Check(SNMPSynologyFansResource(session=session),
check = nagiosplugin.Check(
SNMPSynologyFansResource(session=session),
SNMPSynologyFansContext(name='fan_context'),
SNMPSynologySummary())
check.name = "Fans Status"
case 'firmware':
check = nagiosplugin.Check(SNMPSynologyFirmwareResource(session=session),
check = nagiosplugin.Check(
SNMPSynologyFirmwareResource(session=session),
SNMPSynologyFirmwareContext(name='firmware_context'),
nagiosplugin.Summary())
check.name = "Firmware"
case 'cpu':
check = nagiosplugin.Check(SNMPSynologyCPUResource(session=session),
check = nagiosplugin.Check(
SNMPSynologyCPUResource(session=session),
nagiosplugin.ScalarContext(name='cpu_scalar_context', warning=args.warning, critical=args.critical),
nagiosplugin.Summary())
check.name = "CPU Usage"
case 'memory':
check = nagiosplugin.Check(SNMPSynologyMemoryResource(session=session),
check = nagiosplugin.Check(
SNMPSynologyMemoryResource(session=session),
nagiosplugin.ScalarContext(name='memory_scalar_context', warning=args.warning, critical=args.critical),
nagiosplugin.Summary())
check.name = "Memory Usage"
case 'disk':
check = nagiosplugin.Check(SNMPSynologyDiskHealthResource(session=session),
check = nagiosplugin.Check(
SNMPSynologyDiskHealthResource(session=session),
SNMPSynologyDiskHealthContext(name='disk_health_context'),
SNMPSynologyDiskStatusContext(name='disk_status_context'),
nagiosplugin.ScalarContext(name='disk_scalar_context', warning=args.warning, critical=args.critical),
SNMPSynologySummary())
check.name = "Disk Health"
case 'disk_retry':
check = nagiosplugin.Check(SNMPSynologyDiskRetryResource(session=session),
check = nagiosplugin.Check(
SNMPSynologyDiskRetryResource(session=session),
nagiosplugin.ScalarContext(name='disk_retry_scalar_context', warning=args.warning, critical=args.critical),
nagiosplugin.Summary())
check.name = "Disk Connection Retrys"
case 'disk_life':
check = nagiosplugin.Check(SNMPSynologyDiskLifeResource(session=session),
check = nagiosplugin.Check(
SNMPSynologyDiskLifeResource(session=session),
nagiosplugin.ScalarContext(name='disk_life_scalar_context', warning=args.warning, critical=args.critical),
nagiosplugin.Summary())
check.name = "Disk Remaining Life"
case 'disk_ident':
check = nagiosplugin.Check(SNMPSynologyDiskIdentResource(session=session),
check = nagiosplugin.Check(
SNMPSynologyDiskIdentResource(session=session),
nagiosplugin.ScalarContext(name='disk_ident_scalar_context', warning=args.warning, critical=args.critical),
nagiosplugin.Summary())
check.name = "Disk IdentFail"
case 'disk_sectors':
check = nagiosplugin.Check(SNMPSynologyDiskSectorsResource(session=session),
check = nagiosplugin.Check(
SNMPSynologyDiskSectorsResource(session=session),
nagiosplugin.ScalarContext(name='disk_sectors_scalar_context', warning=args.warning, critical=args.critical),
nagiosplugin.Summary())
check.name = "Disk BadSectors"
case 'raid':
check = nagiosplugin.Check(SNMPSynologyRaidStatusResource(session=session),
check = nagiosplugin.Check(
SNMPSynologyRaidStatusResource(session=session),
SNMPSynologyRaidStatusContext(name='raid_status_context'),
SNMPSynologySummary())
check.name = "Raid status"
case 'raid_space':
check = nagiosplugin.Check(SNMPSynologyRaidSpaceResource(session=session),
check = nagiosplugin.Check(
SNMPSynologyRaidSpaceResource(session=session),
nagiosplugin.ScalarContext(name='raid_space_scalar_context', warning=args.warning, critical=args.critical),
nagiosplugin.Summary())
check.name = "Raid space usage"
case 'ups':
check = nagiosplugin.Check(SNMPSynologyUPSResource(session=session),
check = nagiosplugin.Check(
SNMPSynologyUPSResource(session=session),
SNMPSynologyUPSContext(name='ups_context'),
SNMPSynologySummary())
check.name = "UPS status"