[collectd] Differential data for if_octets

Pawel Akonom pawel.akonom at vnomic.com
Tue Jan 19 23:13:24 CET 2016


Hi,

I am trying to visualize some system metrics on grafana. Metrics are 
sent from CollectD to Logstash, then from Logstash to Elasticsearch and 
from Elasticsearch to Grafana. The problem is rx tx if_octets and 
if_packets metric is growing all the time. I would like to see 
differential metric on the graph - how many octets or packets was send 
and received in last 10 seconds.

I am using collectd 5.5 on CentOS 6.7 and I have compiled it from source 
code. In /usr/share/collectd/types.db if_packets and if_octets are set 
to DERIVE. As I understand from wiki page 
https://collectd.org/wiki/index.php/Data_source this data should be sent 
as a change from the last time:

[root at hdptest-mster2 collectd-5.5.0]# grep if_packets 
/usr/share/collectd/types.db
if_packets              rx:DERIVE:0:U, tx:DERIVE:0:U
[root at hdptest-mster2 collectd-5.5.0]# grep if_octets 
/usr/share/collectd/types.db
if_octets               rx:DERIVE:0:U, tx:DERIVE:0:U

Here is my configuration file:

[root at hdptest-mster2 collectd-5.5.0]# egrep -v ^#.* /etc/collectd.conf | 
sed '/^$/d'
Hostname    "ACI_184_vora2_Master_MT2"
TypesDB     "/usr/share/collectd/types.db"
LoadPlugin cpu
LoadPlugin df
LoadPlugin disk
LoadPlugin exec
LoadPlugin interface
LoadPlugin load
LoadPlugin memory
LoadPlugin network
<Plugin cpu>
   ReportByCpu true
   ReportByState true
   ValuesPercentage true
</Plugin>
<Plugin df>
         Device "/dev/sda1"
         Device "/dev/sdb1"
         FSType "ext4"
         ValuesPercentage true
</Plugin>
<Plugin disk>
         Disk "/^sd[a-b]?$/"
         IgnoreSelected false
</Plugin>
<Plugin interface>
         Interface "eth0"
         IgnoreSelected false
</Plugin>
<Plugin memory>
         ValuesAbsolute true
         ValuesPercentage false
</Plugin>
<Plugin network>
         <Server "192.168.112.228" "25826">
         </Server>
         <Server "192.168.112.227" "25826">
         </Server>
</Plugin>

This is a sample of raw data sent to logstash from this host:

[root at hdptest-elk logstash]# tail -f logstash-rawdata.log | grep MT2 | 
grep if_octets
{"host":"ACI_184_vora2_Master_MT2","@timestamp":"2016-01-19T21:37:41.485Z","plugin":"interface","collectd_type":"if_octets","plugin_instance":"eth0","rx":4202999326,"tx":1272176172,"@version":"1","type":"collectd"}
{"host":"ACI_184_vora2_Master_MT2","@timestamp":"2016-01-19T21:37:51.485Z","plugin":"interface","plugin_instance":"eth0","collectd_type":"if_octets","rx":4203048744,"tx":1272200296,"@version":"1","type":"collectd"}
{"host":"ACI_184_vora2_Master_MT2","@timestamp":"2016-01-19T21:38:01.485Z","plugin":"interface","collectd_type":"if_octets","plugin_instance":"eth0","rx":4203131562,"tx":1272215389,"@version":"1","type":"collectd"}
{"host":"ACI_184_vora2_Master_MT2","@timestamp":"2016-01-19T21:38:11.485Z","plugin":"interface","collectd_type":"if_octets","plugin_instance":"eth0","rx":4203152162,"tx":1272241466,"@version":"1","type":"collectd"}

It looks like data are sent as a GAUGE value instead of DERIVE. What I 
am doing wrong? How can I configure CollectD to send differential 
statistics for the interfaces?

Best Regards,
Pawel




More information about the collectd mailing list