SNMP discovery updates continued
This commit is contained in:
@@ -20,6 +20,10 @@ from app.collectors.snmp import (
|
||||
HR_STORAGE_SIZE,
|
||||
HR_STORAGE_USED,
|
||||
SYS_UPTIME,
|
||||
UCD_DSK_PERCENT,
|
||||
UCD_LA_LOAD_INT,
|
||||
UCD_MEM_AVAIL_REAL,
|
||||
UCD_MEM_TOTAL_REAL,
|
||||
SnmpCheckConfig,
|
||||
_with_index,
|
||||
run_snmp_check,
|
||||
@@ -66,6 +70,72 @@ class SnmpCollectorTestCase(unittest.IsolatedAsyncioTestCase):
|
||||
("load_percent", 42.0, "%")
|
||||
]
|
||||
|
||||
async def test_collects_linux_load_average(self) -> None:
|
||||
oid = _with_index(UCD_LA_LOAD_INT, 1)
|
||||
with patch("app.collectors.snmp.SnmpV2Client") as client_class:
|
||||
client_class.return_value.get_many.return_value = {oid: 123}
|
||||
|
||||
result = await run_snmp_check(
|
||||
SnmpCheckConfig(
|
||||
host="192.0.2.10",
|
||||
community="private-community",
|
||||
item_id="linux.load.1",
|
||||
item_type="linux_load_average",
|
||||
label="Load average 1 minute",
|
||||
)
|
||||
)
|
||||
|
||||
assert result.status == "up"
|
||||
assert result.message == "Load average 1 minute is 1.23"
|
||||
assert [(metric.name, metric.value, metric.unit) for metric in result.metrics] == [
|
||||
("load_average", 1.23, None)
|
||||
]
|
||||
|
||||
async def test_collects_linux_memory_usage(self) -> None:
|
||||
with patch("app.collectors.snmp.SnmpV2Client") as client_class:
|
||||
client_class.return_value.get_many.return_value = {
|
||||
UCD_MEM_TOTAL_REAL: 1000,
|
||||
UCD_MEM_AVAIL_REAL: 250,
|
||||
}
|
||||
|
||||
result = await run_snmp_check(
|
||||
SnmpCheckConfig(
|
||||
host="192.0.2.10",
|
||||
community="private-community",
|
||||
item_id="linux.memory.real",
|
||||
item_type="linux_memory_usage",
|
||||
)
|
||||
)
|
||||
|
||||
assert result.status == "up"
|
||||
assert result.message == "Memory is 75.0% used"
|
||||
assert [(metric.name, metric.value, metric.unit) for metric in result.metrics] == [
|
||||
("used_percent", 75.0, "%"),
|
||||
("used_bytes", 768000.0, "bytes"),
|
||||
("total_bytes", 1024000.0, "bytes"),
|
||||
]
|
||||
|
||||
async def test_collects_linux_disk_usage(self) -> None:
|
||||
oid = _with_index(UCD_DSK_PERCENT, 31)
|
||||
with patch("app.collectors.snmp.SnmpV2Client") as client_class:
|
||||
client_class.return_value.get_many.return_value = {oid: 81}
|
||||
|
||||
result = await run_snmp_check(
|
||||
SnmpCheckConfig(
|
||||
host="192.0.2.10",
|
||||
community="private-community",
|
||||
item_id="linux.disk.31",
|
||||
item_type="linux_disk_usage",
|
||||
label="Disk / usage",
|
||||
)
|
||||
)
|
||||
|
||||
assert result.status == "up"
|
||||
assert result.message == "Disk / usage is 81% used"
|
||||
assert [(metric.name, metric.value, metric.unit) for metric in result.metrics] == [
|
||||
("used_percent", 81.0, "%")
|
||||
]
|
||||
|
||||
async def test_collects_storage_usage(self) -> None:
|
||||
oids = [
|
||||
_with_index(HR_STORAGE_ALLOCATION_UNITS, 31),
|
||||
|
||||
Reference in New Issue
Block a user