Some SNMP implementations actively report the interface speed as 0 (e.g., when disconnected). This led the plugin to report both min and max to be 0, which later confuses RRDTool, with errors such as
[ERROR] Unable to create '/var/lib/munin/example.net/192.2.0.1-snmp_if_combined_vlan-37-send-d.rrd': failed to parse data source 600:0:0: min must be less than max in DS definition
when trying to creates the RRDs. Ultimately, this would prevent the graph creation from suceeding with errors such as
[ERROR] In RRD: Error updating /var/lib/munin/example.net/192.2.0.1-snmp_if_combined_vlan-37-send-d.rrd: opening '/var/lib/munin/example.net/192.2.0.1-snmp_if_combined_vlan-37-send-d.rrd': No such file or directory
Signed-off-by: Olivier Mehani <shtrom@ssji.net>
From a summary comment in the code:
If a stacked graph is requested, plot the total. Rather than
aggregating them with CDEFs of SUMs, we sum them in the script, which
allows us to create real series than can be easily borrowed by other
loaning graphs.
Those series are recv_bits and send_bits.
There are longstanding bugs with them (dating back to snmp__if). This
has been documented, as well as some potential ad hoc fixes for the
data.
Some outdated bug were also removed from the doc.
Signed-off-by: Olivier Mehani <shtrom@ssji.net>
Instead of just having a single "errors" value on the per-interface
error graphs, split it in errors and discards, then provide a total
for the combined graph.
This way it's possible to see more details of what's going on at the
interface level.
This basically almost replaces snmp__if_multi in full, as sub-graphs
with interface traffic are generated as a set of detailed graphs. It
doesn't yet compose graphs with the interface errors though.