Bug description
When monitoring a MikroTik RB5009 running RouterOS 7.23.3 via the SNMP collector (go.d), the collector repeatedly logs warnings every collection interval and fails to transform table metrics due to high/sparse OID indices in mtxrHlTable.
Expected behavior
The SNMP collector should gracefully process or filter sparse OID table indices (such as 7201+ in mtxrHlTable) without throwing Go template evaluation errors or failing table metric collection.
Steps to reproduce
- Configure Netdata go.d SNMP collector to monitor a MikroTik RB5009 running RouterOS 7.23.3 using the default
mikrotik-router.yaml profile.
- Ensure
mtxrHlTable is enabled in the configuration.
- Check Netdata logs via
docker logs netdata.
- Observe repeated
can't evaluate field Value in type struct { Metric *ddsnmp.Metric } template execution warnings every 30 seconds.
Installation method
docker
System info
Linux HomeServer 6.18.34+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.18.34-1+rpt1 (2026-06-09) aarch64 GNU/Linux
/etc/os-release:PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
/etc/os-release:NAME="Debian GNU/Linux"
/etc/os-release:VERSION_ID="13"
/etc/os-release:VERSION="13 (trixie)"
/etc/os-release:VERSION_CODENAME=trixie
/etc/os-release:DEBIAN_VERSION_FULL=13.6
/etc/os-release:ID=debian
Netdata build info
time=2026-08-15T01:04:25.936+02:00 comm=netdata source=daemon level=notice errno="2, No such file or directory" tid=581438 msg="CONFIG: cannot load user config '/etc/netdata/stream.conf'. Will try stock config."
time=2026-08-15T01:04:25.936+02:00 comm=netdata source=daemon level=error errno="22, Invalid argument" tid=581438 msg="madvise(MADV_MERGEABLE) of size 16384, failed."
Packaging:
Netdata Version ____________________________________________ : v2.10.4
Installation Type __________________________________________ : oci
Package Architecture _______________________________________ : arm64
Package Distro _____________________________________________ : unknown
Configure Options __________________________________________ : cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_STANDARD=11 -DCMAKE_CXX_STANDARD=17 -DBUILD_SHARED_LIBS=OFF -DCMAKE_C_FLAGS='-O2 -funroll-loops -pipe -fexceptions -fstack-protector-strong -D_FORTIFY_SOURCE=3 -fstack-clash-protection -mbranch-protection=standard -ffunction-sections -fdata-sections -Wno-builtin-macro-redefined -fno-omit-frame-pointer -funwind-tables -fasynchronous-unwind-tables' -DCMAKE_CXX_FLAGS=' -O2 -funroll-loops -pipe -fexceptions -fstack-protector-strong -D_FORTIFY_SOURCE=3 -fstack-clash-protection -mbranch-protection=standard -ffunction-sections -fdata-sections -Wno-builtin-macro-redefined -fno-omit-frame-pointer -funwind-tables -fasynchronous-unwind-tables' -DCMAKE_COMPILE_DEFINITIONS='_GNU_SOURCE' -DCMAKE_EXE_LINKER_FLAGS='-Wl,--gc-sections -fexceptions -fstack-protector-strong -D_FORTIFY_SOURCE=3 -fstack-clash-protection -mbranch-protection=standard -ffunction-sections -fdata-sections -Wno-builtin-macro-redefined -rdynamic' -DCMAKE_SHARED_LINKER_FLAGS='-Wl,--gc-sections'
Default Directories:
User Configurations ________________________________________ : /etc/netdata
Stock Configurations _______________________________________ : /usr/lib/netdata/conf.d
Ephemeral Databases (metrics data, metadata) _______________ : /var/cache/netdata
Permanent Databases ________________________________________ : /var/lib/netdata
Plugins ____________________________________________________ : /usr/libexec/netdata/plugins.d
Static Web Files ___________________________________________ : /usr/share/netdata/web
Log Files __________________________________________________ : /var/log/netdata
Lock Files _________________________________________________ : /var/lib/netdata/lock
Home _______________________________________________________ : /var/lib/netdata
Operating System:
Kernel _____________________________________________________ : Linux
Kernel Version _____________________________________________ : 6.18.34+rpt-rpi-2712
Operating System ___________________________________________ : unknown
Operating System ID ________________________________________ : unknown
Operating System ID Like ___________________________________ : unknown
Operating System Version ___________________________________ : unknown
Operating System Version ID ________________________________ : 13
Detection __________________________________________________ : unknown
Hardware:
CPU Cores __________________________________________________ : 4
CPU Frequency ______________________________________________ : 2400000000
RAM Bytes __________________________________________________ : 17006198784
Disk Capacity ______________________________________________ : 5001002754048
CPU Architecture ___________________________________________ : aarch64
Virtualization Technology __________________________________ : none
Virtualization Detection ___________________________________ : systemd-detect-virt
Container:
Container __________________________________________________ : docker
Container Detection ________________________________________ : systemd-detect-virt
Container Orchestrator _____________________________________ : none
Container Operating System _________________________________ : Debian GNU/Linux
Container Operating System ID ______________________________ : debian
Container Operating System ID Like _________________________ : unknown
Container Operating System Version _________________________ : 13 (trixie)
Container Operating System Version ID ______________________ : 13
Container Operating System Detection _______________________ : /etc/os-release
Features:
Built For __________________________________________________ : Linux
Netdata Cloud ______________________________________________ : YES
Health (trigger alerts and send notifications) _____________ : YES
Streaming (stream metrics to parent Netdata servers) _______ : YES
Back-filling (of higher database tiers) ____________________ : YES
Replication (fill the gaps of parent Netdata servers) ______ : YES
Streaming and Replication Compression ______________________ : YES (zstd lz4 gzip brotli)
Contexts (index all active and archived metrics) ___________ : YES
Tiering (multiple dbs with different metrics resolution) ___ : YES (5)
Machine Learning ___________________________________________ : YES
Memory Allocator ___________________________________________ : system
Database Engines:
dbengine (compression) _____________________________________ : YES (zstd lz4)
alloc ______________________________________________________ : YES
ram ________________________________________________________ : YES
none _______________________________________________________ : YES
Connectivity Capabilities:
ACLK (Agent-Cloud Link: MQTT over WebSockets over TLS) _____ : YES
static (Netdata internal web server) _______________________ : YES
WebRTC (experimental) ______________________________________ : NO
Native HTTPS (TLS Support) _________________________________ : YES
TLS Host Verification ______________________________________ : YES
Libraries:
LZ4 (extremely fast lossless compression algorithm) ________ : YES
ZSTD (fast, lossless compression algorithm) ________________ : YES
zlib (lossless data-compression library) ___________________ : YES
Brotli (generic-purpose lossless compression algorithm) ____ : YES
protobuf (platform-neutral data serialization protocol) ____ : YES (system)
OpenSSL (cryptography) _____________________________________ : YES
libdatachannel (stand-alone WebRTC data channels) __________ : NO
JSON-C (lightweight JSON manipulation) _____________________ : YES
libcap (Linux capabilities system operations) ______________ : YES
libcrypto (cryptographic functions) ________________________ : YES
libyaml (library for parsing and emitting YAML) ____________ : YES
libmnl (library for working with netfilter) ________________ : YES
stacktraces (library for getting stack traces) _____________ : libbacktrace (mmap, threads, data)
Plugins:
apps (monitor processes) ___________________________________ : YES
cgroups (monitor containers and VMs) _______________________ : YES
cgroup-network (associate interfaces to CGROUPS) ___________ : YES
proc (monitor Linux systems) _______________________________ : YES
tc (monitor Linux network QoS) _____________________________ : YES
diskspace (monitor Linux mount points) _____________________ : YES
freebsd (monitor FreeBSD systems) __________________________ : NO
macos (monitor MacOS systems) ______________________________ : NO
windows (monitor Windows systems) __________________________ : NO
statsd (collect custom application metrics) ________________ : YES
timex (check system clock synchronization) _________________ : YES
idlejitter (check system latency and jitter) _______________ : YES
bash (support shell data collection jobs - charts.d) _______ : YES
debugfs (kernel debugging metrics) _________________________ : YES
cups (monitor printers and print jobs) _____________________ : NO
ebpf (monitor system calls) ________________________________ : NO
freeipmi (monitor enterprise server H/W) ___________________ : YES
network-viewer (monitor TCP/UDP IPv4/6 sockets) ____________ : YES
systemd-journal (monitor journal logs) _____________________ : YES
windows-events (monitor Windows events) ____________________ : NO
nfacct (gather netfilter accounting) _______________________ : NO
perf (collect kernel performance events) ___________________ : YES
slabinfo (monitor kernel object caching) ___________________ : YES
Xen ________________________________________________________ : NO
Xen VBD Error Tracking _____________________________________ : NO
Exporters:
AWS Kinesis ________________________________________________ : NO
GCP PubSub _________________________________________________ : NO
MongoDB ____________________________________________________ : YES
Prometheus (OpenMetrics) Exporter __________________________ : YES
Prometheus Remote Write ____________________________________ : YES
Graphite ___________________________________________________ : YES
Graphite HTTP / HTTPS ______________________________________ : YES
JSON _______________________________________________________ : YES
JSON HTTP / HTTPS __________________________________________ : YES
OpenTSDB ___________________________________________________ : YES
OpenTSDB HTTP / HTTPS ______________________________________ : YES
All Metrics API ____________________________________________ : YES
Shell (use metrics in shell scripts) _______________________ : YES
Debug/Developer Features:
Trace All Netdata Allocations (with charts) ________________ : NO
Developer Mode (more runtime checks, slower) _______________ : NO
Runtime Information:
Profile ____________________________________________________ : standalone
Stream Parent (accept data from Children) __________________ : NO
Stream Child (send data to a Parent) _______________________ : NO
Total System Memory ________________________________________ : 17006198784
Available System Memory ____________________________________ : 12072763392
Additional info
Log output
level=warn msg=“failed to collect table metrics: failed to execute transform template: template: metric_transform:28:80: executing "metric_transform" at <$.Value>: can’t evaluate field Value in type struct { Metric *ddsnmp.Metric }” plugin=go.d collector=snmp job=rb5009 config_source=“user/file reader” ddsnmp=collector
Root Cause & SNMPwalk Details
The issue is caused by the mtxrHlTable (1.3.6.1.4.1.14988.1.1.3.100) section in the mikrotik.yaml profile.
On newer hardware like the MikroTik RB5009, RouterOS v7.23.3 uses non-sequential high OID indices, jumping from index 17 directly to 7201+ for power input metrics like jack-voltage, 2pin-voltage, and poe-in-voltage.
When processing these sparse/high indices, the metric struct evaluated by metric_transform lacks the Value field.
SNMPwalk output from RB5009
iso.3.6.1.4.1.14988.1.1.3.100.1.2.16 = STRING: “poe-out-consumption”
iso.3.6.1.4.1.14988.1.1.3.100.1.2.17 = STRING: “cpu-temperature”
iso.3.6.1.4.1.14988.1.1.3.100.1.2.7201 = STRING: “jack-voltage”
iso.3.6.1.4.1.14988.1.1.3.100.1.2.7202 = STRING: “2pin-voltage”
iso.3.6.1.4.1.14988.1.1.3.100.1.2.7203 = STRING: “poe-in-voltage”
iso.3.6.1.4.1.14988.1.1.3.100.1.3.16 = INTEGER: 192
iso.3.6.1.4.1.14988.1.1.3.100.1.3.17 = INTEGER: 51
iso.3.6.1.4.1.14988.1.1.3.100.1.3.7201 = INTEGER: 492
iso.3.6.1.4.1.14988.1.1.3.100.1.3.7202 = INTEGER: 0
iso.3.6.1.4.1.14988.1.1.3.100.1.3.7203 = INTEGER: 0
Bug description
When monitoring a MikroTik RB5009 running RouterOS 7.23.3 via the SNMP collector (
go.d), the collector repeatedly logs warnings every collection interval and fails to transform table metrics due to high/sparse OID indices inmtxrHlTable.Expected behavior
The SNMP collector should gracefully process or filter sparse OID table indices (such as 7201+ in
mtxrHlTable) without throwing Go template evaluation errors or failing table metric collection.Steps to reproduce
mikrotik-router.yamlprofile.mtxrHlTableis enabled in the configuration.docker logs netdata.can't evaluate field Value in type struct { Metric *ddsnmp.Metric }template execution warnings every 30 seconds.Installation method
docker
System info
Netdata build info
Additional info
Log output
Root Cause & SNMPwalk Details
The issue is caused by the mtxrHlTable (1.3.6.1.4.1.14988.1.1.3.100) section in the mikrotik.yaml profile.
On newer hardware like the MikroTik RB5009, RouterOS v7.23.3 uses non-sequential high OID indices, jumping from index 17 directly to 7201+ for power input metrics like jack-voltage, 2pin-voltage, and poe-in-voltage.
When processing these sparse/high indices, the metric struct evaluated by metric_transform lacks the Value field.
SNMPwalk output from RB5009