[collectd] fishing for switch qos ideas

ryanL ryan.landry at gmail.com
Thu Nov 15 20:34:21 CET 2012


hi.

i'm quite successfully polling my test network and outputting to
graphite. i've hinted at this one before in a previous message, but
i'm still stumped on how to solve. hoping someone here can give me an
idea or two.

if i query a specific if-index for queue drops, i get four results
back for the default switch port queues.

snmpwalk -v 2c -c public fsaa-rs1 jnxCosIfqTailDropPkts.516
JUNIPER-COS-MIB::jnxCosIfqTailDropPkts.516."best-effort" = Counter64: 9681
JUNIPER-COS-MIB::jnxCosIfqTailDropPkts.516."network-control" = Counter64: 0
JUNIPER-COS-MIB::jnxCosIfqTailDropPkts.516."assured-forwarding" = Counter64: 0
JUNIPER-COS-MIB::jnxCosIfqTailDropPkts.516."expedited-forwarding" = Counter64: 0

in types.db.custom i've added this:

if_qdrop drops:COUNTER:0:U

collectd.conf has:

<Data "if_qdrop">
Type "if_qdrop"
Table true
Values "JUNIPER-COS-MIB::jnxCosIfqTailDropPkts.516"
</Data>

<Host "fsaa-rs1">
Address "10.1.1.121"
Version 2
Community "public"
Collect "sys_ex_rack" "if_bytes" "if_qdrop"
Interval 60
</Host>

unfortunately the output to the whisper files and ultimately graphite
look like this:

http://cl.ly/image/3M0C3V021v0r

also unfortunately is that the switch doesn't seem to support to the
jnxCosIfqIfIndex within the mib structure, which would have obviously
made my life a lot easier for having been able to reference it for the
directory structure (much like ifIndex). i opened a case with juniper,
and it just isn't supported on the platform.

so what i'm trying to achieve is somehow munge the data from
JUNIPER-COS-MIB::jnxCosIfqTailDropPkts which will return four values
for each interface, have that data structured individually with nice
names under the existing interface index value which already contains
the if_bytes information per interface. (if_bytes is basically
std_traffic)

is there something in the way of filters or data manipulation within
collectd that i've yet to discover? currently my thought is to fire up
another collectd instance and query specifically for this data, but
instead of writing to graphite have it write to some other place for
me to bash on it before sending to my graphite cluster.

i hope that makes some sense. and i hope someone has come up against
and solved this problem already :)

thanks kindly.

ryan



More information about the collectd mailing list