diff --git a/server/monitor-types/snmp.js b/server/monitor-types/snmp.js index 1a9b5bbaa..7a1522a1a 100644 --- a/server/monitor-types/snmp.js +++ b/server/monitor-types/snmp.js @@ -71,7 +71,17 @@ class SNMPMonitorType extends MonitorType { heartbeat.status = UP; heartbeat.msg = `JSON query passes (comparing ${response} ${monitor.jsonPathOperator} ${monitor.expectedValue})`; // Extract numeric value for aggregation (will be passed to uptime calculator) - heartbeat.numeric_value = monitor.parseToNumberOrNull(response); + let numericValue = null; + if (typeof response === "number") { + numericValue = response; + } else if (typeof response === "string") { + // Try to parse as number + const parsed = parseFloat(response); + if (!isNaN(parsed) && isFinite(parsed)) { + numericValue = parsed; + } + } + heartbeat.numeric_value = numericValue; } else { throw new Error( `JSON query does not pass (comparing ${response} ${monitor.jsonPathOperator} ${monitor.expectedValue})`