WaterByWind / grafana-dashboards

Grafana Dashboards
MIT License
292 stars 54 forks source link

Is there a way to add all of the info gathered from the plugin into it's own measurement so it doesn't create as many? #25

Open xenoxaos opened 4 years ago

xenoxaos commented 4 years ago

The only downside I'm seeing with using this is that it creates a lot of different measurements in my influxdb. Is there a way to make them all under one measurement like UBNT or something and not hrDeviceTable IfTable, IfXTable, etc?

WaterByWind commented 4 years ago

Actually it is better to use separate measurements here rather than trying to group unrelated metrics into the same measurement. Using separate measurements keeps the data manageable and useful. An influxdb measurement is analogous to a relational database table.

Attempting to put everything into a single measurement while keeping useful/needed tags would result in a significant increase in series cardinality needlessly. That in turn would result in increased memory demands on the influxdb server, potentially significantly.

The measurement names are derived directly from the actual SNMP object names. For instance ifTable is the standard SNMP IF-MIB::ifTable, which is queried and returned as an actual table then stored as its own influxdb measurement equivalent to that SNMP Table.

xenoxaos commented 4 years ago

Thanks for the info. I'm still working on understanding on how all this snmp stuff works. I'm sure there's a way to do it, but can you help with limiting the number of interfaces that it scrapes? I only use eth0 and eth1 (at least for now) on my edgerouter pro 8

WaterByWind commented 4 years ago

You can filter the interfaces displayed on the dashboard using the 'Interface' dropdown at the top.

The Telegraf SNMP plugin retrieves the tables as actual tables, so all interfaces are returned. You could probably use telegraf filtering to then only actually save the data for the interfaces you want. Review of some of the telegraf documentation might be helpful for this, but off the top of my head I would try adding a line 'namepass = ['eth0', 'eth1'] to the relevant subsections for the input configuration (IE: in the two inputs.snmp.table sections for interface metrics). Some experimentation might be needed to get it right.