[collectd-changes] collectd, the system statistics collection daemon: Changes to 'collectd-5.2'

Florian Forster octo at verplant.org
Sun Apr 7 19:29:41 CEST 2013

 src/netapp.c |   19 ++--
 src/snmp.c   |  289 ++++++++++++++++++++++++----------------------------------
 2 files changed, 130 insertions(+), 178 deletions(-)

New commits:
commit 842c1a2d2a640151a89b9de7f4acd3b6a058c799
Merge: 5efcb2f 86d3fe4
Author: Florian Forster <octo at collectd.org>
Date:   Sun Apr 7 19:23:27 2013 +0200

    Merge branch 'collectd-5.1' into collectd-5.2

commit 86d3fe407e7a9553709304a88c0b7ab1f8c0e4d9
Merge: 0819379 fcdef56
Author: Florian Forster <octo at collectd.org>
Date:   Sun Apr 7 19:20:14 2013 +0200

    Merge branch 'jk/snmp' into collectd-5.1

commit 081937982256f1f1ecbcff36a76422b05058a832
Merge: 9cbc0fe d3868c0
Author: Florian Forster <octo at collectd.org>
Date:   Sun Apr 7 06:21:42 2013 +0200

    Merge remote-tracking branch 'github-octo/ff/netapp' into collectd-5.1

commit d3868c02ee3a1140b0da620088db5664cf798be9
Author: Florian Forster <octo at collectd.org>
Date:   Thu Apr 4 17:32:36 2013 -0700

    netapp plugin: Fix intervals used when dispatching values.
    It used to use the interval of the <Host /> block when in fact it should
    have used the interval of the data blocks.
    Fixes Github issue #288.

commit fcdef5642be518d6115583c65b0582e3d9d8d65b
Author: Florian Forster <octo at collectd.org>
Date:   Tue Apr 2 19:20:17 2013 -0700

    snmp plugin: Fix compilation issue.
    Thanks to Magnus for pointing this out.

commit 33bda9d4afd99d74566b84b735585f8038af852e
Author: Florian Forster <octo at collectd.org>
Date:   Fri Mar 29 12:50:23 2013 -0700

    snmp plugin: Allocate "oid_list" on the stack.

commit cdb488b994519d3392f35ec65ac9525d06b8a204
Author: Florian Forster <octo at collectd.org>
Date:   Fri Mar 29 12:49:28 2013 -0700

    snmp plugin: Some coding style fixes.
    * Rename "oid_todo_list" to "oid_list_todo".
    * Rename "j" to "oid_list_todo_num".
    * Fix indentation.
    * Declare variables at beginning of block.

commit 080f01b95a5f6006438e2ffee6ae3d093263d148
Author: jkrabbe <jkrabbe at rot13.de>
Date:   Tue Mar 26 15:25:02 2013 +0100

    csnmp_read_table: Change GETNEXT request behaviour (+ bugfix 235)
    This patch changes the snmp GETNEXT request behaviour implemented in snmp.c.
    The old implementation requested all OIDs using GETNEXT requests until all OIDs
    left their own subtree. In cases were trees in a Data template are much longer
    than other trees the shorter subtrees were re-requested over and over again.
    The new implementation will only request OIDs that did not already leave their
    subtrees (see the oid_todo_list implementation for details). This renders the
    function csnmp_check_res_left_subtree useless as the oid_todo_list keeps track
    if all OIDs have finished.
    During tests against Cat6500 (CatOS/IOS) as well as Nexus5k (NX-OS) it looks as
    though GETNEXT requests (when requesting multiple OIDs like all 14 dot3Stats
    errors from Etherlike-MIB) can take about 5-10ms (CatOS 30ms) longer if they wrap
    to the next OID.
    This does not sound much but when collecting data for the Etherlike-MIB (that only
    has entries for physical interfaces) with a collectd "Instance" variable in IF-MIB
    (that has entries for all physical as well as pseudo [SVIs, VLANs, ...] interfaces)
    this can make a notable difference (e.g. for core routers that have all SVIs and
    VLANs but only some switches attached):
    IOS-Core-Router   ifName                 550 entries
                      dot3StatsFCSErrors      70 entries
                                             480 entries * 10ms =  4.8s overhead
    CatOS-Access-Sw.  ifName                 840 entries
                      dot3StatsFCSErrors     490 entries
                                             350 entries * 30ms = 10.5s overhead
    After refactoring csnmp_read_table "Instance" and "Value" OIDs are now handled
    consistently (so no pointer-forward foo needed). It doesn't change any logic
    and data structures, though - so there should not be any impact to other
    The refactored code also fixes GitHub bugs #235 and #258. This bug is due to
    reusing the status variable in following code section which might lead to errors
    if the subtrees are of different length:
    1436    /* Calculate the current suffix. This is later used to check that the
    1437     * suffix is increasing. This also checks if we left the subtree */
    1438    status = csnmp_oid_suffix (&suffix, &vb_name, data->values + i);
    Signed-off-by: Florian Forster <octo at collectd.org>

More information about the collectd-changes mailing list