Anuket Project
Netlink
Description
The Netlink plugin will open a netlink socket to the Linux kernel and use it to get statistics for "interfaces", "qdiscs", "classes", and, if you can make use of it, "filters". Since in most setups many of the statistics this plugin can collect aren't of interest, you can select which information to gather using the configuration. The details are documented in the collectd.conf.pod manpage.
The interface statistics has been split up in two parts:
* The normal interface statistics include exactly the same information as is collected by the Interface plugin – it's only collected in another way.
* The verbose interface statistics give you all the other details that are available: Number of dropped packets, number of multicast packets, and RX- and TX-errors by error types. Under Linux, you cannot get any more verbose than that. These statistics basically correspond to the values returned by:
# ip -s -s link list
It is possible to use regular expressions to match interface names, if the name is surrounded by I</.../> and collectd was compiled with support for regexps. This is useful if there's a need to collect (or ignore) data for a group of interfaces that are similarly named, without the need to explicitly list all of them (especially useful if the list is dynamic).
Example:
<Plugin "netlink">
Interface "/^eth/"
Interface "/^ens[1-4]$|^enp[0-3]$/"
VerboseInterface "/^eno[0-9]+/"
</Plugin>
But extended interface statistics is not all. The Netlink plugin can also gather statistics from Linux' ''traffic control subsystem'', i.e. the bytes and packets that passed a certain ''qdisc'', ''class'', or ''filter''. I'm afraid there is no one sentence answer to what all that is, but there's an [http://www.docum.org/docum.org/faq/cache/16.html article in the LARTC HowTo] which tries to explain that. If you have a traffic shaping or ''Quality of Service'' (QoS) setup and you need or want to know how much traffic is going over which ''qdisc'' or ''class'', this is the right plugin for you.
Graphing ''filters'' is a bit troublesome: ''Filters'' don't have an ID of their own, so the parent's ID (i.e. the QDisc's handle, since filters always belong to a ''QDisc'', classes cannot have filters attached to them) is used. This may not result in a unique name if there is more than one ''filter'' attached to that ''qdisc'' or ''class''. If you want to get statistics about different traffic types, please have a look at the IP-Tables plugin.
If CollectVFStats is set to true plugin collects VF's statistics for Virtual Functions available for interfaces specified in Interface or VerboseInterface. All available stats are collected no matter if parent interface is set by Interface or VerboseInterface.
Synopsis
<Plugin "netlink">
Interface "eth0"
Interface "ppp0"
VerboseInterface "ppp0"
QDisc "ppp0"
Class "ppp0" "htb-1:10"
Filter "ppp0" "u32-1:0"
IgnoreSelected false
CollectVFStats true
</Plugin>
History
* ''CollectVFStats'' option is available since release 5.12.
Dependencies
* Linux 2.4 or later
* libmnl