Comment from GitHub:
"Hello there everyone. So I was looking at some more things that could potentially be done to add graphing functionality to Mikrotik specific routers. In this case it would be ability to automagically detect and graph out similarly to the Cisco class based QoS (#1851).
Basically if it’s possible to automatically populate via the given OIDs of configured queues on a Mikrotik router. I’m sure it wouldn’t be too difficult to setup as all the OIDs are pretty easy to get. Anyway, let me explain the way Mikrotik RouterOS does this kind of graphing.
There are 2 types (probably 3 if one adds PCQ) of QoS/CoS able configurations on Mikrotik. Simple Queues and Queue Trees. Simple Queues are similar to just regular QoS/CoS as would be configured on a Cisco or Juniper. Queue Trees are more along the lines of Hierarchical QoS. They are both graphable and if possible can I make a request for them to be different windows and not aggregated under LibreNMS. The reasoning for this is because it will allow for easier view of the QoS statistics within a Mikrotik router.
Here (http://pastebin.com/4bhydXkF) is the output from the router. This is how the router exports a Simple Queue OID chart. I don’t know if it’s ok for me to do this in this little section but I’d like to just take one example and show the information that is given per configured line. Here we go:
name=.1.3.6.1.4.1.14988.1.1.2.1.1.2.12
bytes-in=.1.3.6.1.4.1.14988.1.1.2.1.1.8.12
bytes-out=.1.3.6.1.4.1.14988.1.1.2.1.1.9.12
packets-in=.1.3.6.1.4.1.14988.1.1.2.1.1.10.12
packets-out=.1.3.6.1.4.1.14988.1.1.2.1.1.11.12
queues-in=.1.3.6.1.4.1.14988.1.1.2.1.1.12.12
queues-out=.1.3.6.1.4.1.14988.1.1.2.1.1.13.12
Here (http://pastebin.com/HSLH2kL7) is the actual SNMP walk of those values.
As can be seen here, the actual OID for the specific configuration is OID number 12 (that last 12). So that means one can get the name for a “Simple Queue” 1.3.6.1.4.1.14988.1.1.2.1.1.2.[12] and one can get the bytes in for that simple queue at 1.3.6.1.4.1.14988.1.1.2.1.1.8.[12]. As can be seen there are a few things that can be searched upon here for said “Simple Queue.” As long as the last OID matches, one will get the information for this OID. Seems to make sense. Then one can generate the X and Y of the graphs fairly easily. Maybe one graph can have bytes in/out. Another could have packets in/out. From the above I would like to ask to NOT graph the “queues-in” and “queues=out” as it returns a 32 bit counter with the integer of 0. I am not sure what it is supposed to return. So for what it’s worth lets avoid those.
The next type of QoS/CoS is what Mikrotik calls the Queue Tree. This is equivalent to a Hierarchical QoS configuration on a Cisco or Juniper.
Here (http://pastebin.com/4TwezwUX) is the output from the router. This is how the router exports a Queue Tree OID chart. I will use the first example and format it for easier view as above:
name=.1.3.6.1.4.1.14988.1.1.2.2.1.2.16777225
packet-mark=.1.3.6.1.4.1.14988.1.1.2.2.1.3.16777225
bytes=.1.3.6.1.4.1.14988.1.1.2.2.1.7.16777225
packets=.1.3.6.1.4.1.14988.1.1.2.2.1.6.16777225
queues=.1.3.6.1.4.1.14988.1.1.2.2.1.8.16777225
Here (http://pastebin.com/jvei7pAp) is the actual SNMP walk of those values.
The information here is similar to the Simple Queue outputs from above. The last OID is the identifier of the actual “Queue Tree” queue. It seems that these OIDs start at above value 16,777,216 (2^24). The difference here is that there is only one traffic value, compared to the two traffic values for the “Simple Queue” queue. Here they are only outbound traffic, whereas “Simple Queue” can be both for inbound and outbound. So the bytes and packets signify outbound traffic only. The packet mark OID seen here actually identifies an internal router configuration name that is used to match traffic. If possible it should be listed so that there’s information on which configured marking firewall filter is used. However this should be very similar and straightforward as above for the “Simple Queue”. Again, we can avoid the queues OID as it returns another 0.
Please let me know if more information is needed and if I was not verbose enough with what I have given here. If need be I can give access to the router with this information if more polling is required by someone who chooses to develop this solution.
Thank you everyone :)"
From: https://github.com/librenms/librenms/issues/5553