interface plugin: following active/inactive interfaces via ReportInactive
authorRinigus <rinigus.git@gmail.com>
Sat, 30 Jul 2016 21:11:30 +0000 (00:11 +0300)
committerRinigus <rinigus.git@gmail.com>
Sat, 30 Jul 2016 21:11:30 +0000 (00:11 +0300)
src/collectd.conf.in
src/collectd.conf.pod
src/interface.c

index bf9e8e6..b678c42 100644 (file)
 #<Plugin interface>
 #      Interface "eth0"
 #      IgnoreSelected false
-#      ActiveInterfaceOnly false
+#      ReportInactive true
 #      UniqueName false
 #</Plugin>
 
index 5bbbf5d..32738dc 100644 (file)
@@ -2735,16 +2735,16 @@ This will ignore the loopback interface, all interfaces with names starting
 with I<veth> and all interfaces with names starting with I<tun> followed by
 at least one digit.
 
-=item B<ActiveInterfaceOnly> I<true>|I<false>
+=item B<ReportInactive> I<true>|I<false>
 
-When set to I<true>, only interfaces with non-zero traffic will be
+When set to I<false>, only interfaces with non-zero traffic will be
 reported. Note that the check is done by looking into whether a
 package was sent at any time from boot and the corresponding counter
 is non-zero. So, if the interface has been sending data in the past
 since boot, but not during the reported time-interval, it will still
 be reported.
 
-The default value is I<false> and results in collection of the data
+The default value is I<true> and results in collection of the data
 from all interfaces that are selected by B<Interface> and
 B<IgnoreSelected> options.
 
index a91c13b..539df58 100644 (file)
@@ -84,14 +84,14 @@ static const char *config_keys[] =
 {
        "Interface",
        "IgnoreSelected",
-       "ActiveInterfaceOnly",
+       "ReportInactive",
        NULL
 };
-static int config_keys_num = 3;
+static int config_keys_num = STATIC_ARRAY_SIZE (config_keys);
 
 static ignorelist_t *ignorelist = NULL;
 
-static _Bool active_interface_only = 0;
+static _Bool report_inactive = 1;
 
 #ifdef HAVE_LIBKSTAT
 #define MAX_NUMIF 256
@@ -117,13 +117,8 @@ static int interface_config (const char *key, const char *value)
                        invert = 0;
                ignorelist_set_invert (ignorelist, invert);
        }
-       else if (strcasecmp (key, "ActiveInterfaceOnly") == 0)
-       {
-               if (IS_TRUE (value))
-                       active_interface_only = 1;
-               else
-                       active_interface_only = 0;
-       }
+       else if (strcasecmp (key, "ReportInactive") == 0)
+               report_inactive = IS_TRUE (value);
        else if (strcasecmp (key, "UniqueName") == 0)
        {
                #ifdef HAVE_LIBKSTAT
@@ -233,7 +228,7 @@ static int interface_read (void)
                if (if_ptr->ifa_addr != NULL && if_ptr->ifa_addr->sa_family == AF_LINK) {
                        if_data = (struct IFA_DATA *) if_ptr->ifa_data;
 
-                       if ( active_interface_only && if_data->IFA_RX_PACKT == 0 && if_data->IFA_TX_PACKT == 0 )
+                       if (!report_inactive && if_data->IFA_RX_PACKT == 0 && if_data->IFA_TX_PACKT == 0)
                                continue;
 
                        if_submit (if_ptr->ifa_name, "if_octets",
@@ -290,7 +285,7 @@ static int interface_read (void)
 
                incoming = atoll (fields[1]);
                outgoing = atoll (fields[9]);
-               if ( active_interface_only && incoming == 0 && outgoing == 0 )
+               if (!report_inactive && incoming == 0 && outgoing == 0)
                        continue;
 
                if_submit (device, "if_packets", incoming, outgoing);
@@ -338,7 +333,7 @@ static int interface_read (void)
                        rx = get_kstat_value (ksp[i], "ipackets");
                if (tx == -1LL)
                        tx = get_kstat_value (ksp[i], "opackets");
-               if ( active_interface_only && rx == 0 && tx == 0 )
+               if (!report_inactive && rx == 0 && tx == 0)
                        continue;
                if ((rx != -1LL) || (tx != -1LL))
                        if_submit (iname, "if_packets", rx, tx);
@@ -369,7 +364,7 @@ static int interface_read (void)
        ios = sg_get_network_io_stats (&num);
 
        for (i = 0; i < num; i++) {
-               if ( active_interface_only && ios[i].rx == 0 && ios[i].tx == 0 )
+               if (!report_inactive && ios[i].rx == 0 && ios[i].tx == 0)
                        continue;
                if_submit (ios[i].interface_name, "if_octets", ios[i].rx, ios[i].tx);
        }
@@ -405,7 +400,7 @@ static int interface_read (void)
 
        for (i = 0; i < ifs; i++)
        {
-               if ( active_interface_only && ifstat[i].ipackets == 0 && ifstat[i].opackets == 0 )
+               if (!report_inactive && ifstat[i].ipackets == 0 && ifstat[i].opackets == 0)
                        continue;
 
                if_submit (ifstat[i].name, "if_octets", ifstat[i].ibytes, ifstat[i].obytes);