Telemetry¶
Tools to collect telemetry from hICN forwarders.
Introduction¶
The project contains two plugins for collectd:
vpp: to collect statistics for VPP
vpp-hicn: to collect statistics for hICN
Currently the two plugins provide the following functionalities:
vpp: statistics (rx/tx bytes and packets) for each available interface.
vpp-hicn: statistics (rx/tx bytes and packets) for each available face.
Quick start¶
From the code tree root:
cd telemetry
mkdir -p build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install
Using hICN collectd plugins¶
Platforms¶
hICN collectd plugins have been tested in:
Ubuntu 16.04 LTS (x86_64)
Ubuntu 18.04 LTS (x86_64)
Debian Stable/Testing
Red Hat Enterprise Linux 7
CentOS 7
Dependencies¶
Build dependencies:
VPP 20.01, Debian packages can be found on packagecloud:
vpp
libvppinfra-dev
vpp-dev
hicn-plugin-dev
collectd
andcollectd-dev
:sudo apt install collectd collectd-dev
Getting started¶
Collectd needs to be configured in order to use the hICN plugins.
To enable the plugins, add the following lines to /etc/collectd/collectd.conf
:
LoadPlugin vpp
LoadPlugin vpp_hicn
Before running collectd, a vpp forwarder must be started. If the vpp-hicn plugin is used, the hicn-plugin must be available in the vpp forwarder.
If you need the custom types that the two plugins define, they are present in
telemetry/custom_types.db
. It is useful if you are using InfluxDB as it requires
the type database for multi-value metrics
(see CollectD protocol support in InfluxDB).
Plugin options¶
vpp
and vpp-hicn
have the same two options:
Verbose
enables additional statistics. You can check the sources to have an exact list of available metrics.Tag
tags the data with the given string. Useful for identifying the context in which the data was retrieved in InfluxDB for instance. If the tag value isNone
, no tag is applied.
Example: storing statistics from vpp and vpp-hicn¶
We’ll use the rrdtool and csv plugins to store statistics from vpp and vpp-hicn.
Copy the configuration below in a file called collectd.conf
and move
it to /etc/collectd
:
######################################################################
# Global #
######################################################################
FQDNLookup true
BaseDir "/var/lib/collectd"
Interval 1
# if you are using custom_types.db, you can specify it
TypesDB "/usr/share/collectd/types.db" "/etc/collectd/custom_types.db"
######################################################################
# Logging #
######################################################################
LoadPlugin logfile
<Plugin logfile>
LogLevel "info"
File "/var/log/collectd.log"
Timestamp true
PrintSeverity true
</Plugin>
######################################################################
# Plugins #
######################################################################
LoadPlugin csv
LoadPlugin rrdtool
LoadPlugin vpp
LoadPlugin vpp_hicn
######################################################################
# Plugin configuration #
######################################################################
<Plugin csv>
DataDir "/var/lib/collectd/csv" # the folder where statistics are stored in csv
StoreRates true
</Plugin>
<Plugin rrdtool>
DataDir "/var/lib/collectd/rrd" # the folder where statistics are stored in rrd
</Plugin>
<Plugin vpp>
Verbose true
Tag "None"
</Plugin>
<Plugin vpp_hicn>
Verbose true
Tag "None"
</Plugin>
Run vpp and collectd:
systemctl start vpp
systemctl start collectd