Collectd as Skydive metrics provider
by Sylvain Afchain, 08/08/2019We recently introduced a first version of a Skydive Collectd plugin.
This aims to leverage some Collectd
plugins to enhance the
Skydive
topology. This blog post will explain how the Skydive
architecture allowed to implement it quickly and how the metrics
are reported.
Topology as a Graph
As you may know, behind the scene the Skydive
topology is a Graph. More than that Skydive
is a Publisher/Subscriber Graph. It means that we can subscribe
to get notifications when something changed and that we can publish information. We used this capability and the library provided by Skydive
to write our Collectd
plugin. This plugin is a publisher. It is written in Go
and comes as a shared library once compiled.
This documentation explains how to build it and configure it.
The following schema shows the global architecture of a common deployment and the components involved.
Fairly simple : Collectd
collects the information, calls the writer function of the Skydive plugin
which subscribed to the Agent
graph. Then the Agent
will forward the information to the Analyzer
.
Finally the information will be archived if a datastore is set up.
Data in Skydive
The Skydive
plugin exports the Collectd
data as part of the Host
node schema under the sub-key Collectd
.
Here what you will get in the WebUI with the Collectd
CPU
and Memory
plugins.
As it is now part of the Skydive
graph we can use the Gremlin
query language to retrieve the information.
History & Conclusion
Having Collectd metrics in the topology means that, with a datastore set up, we can get metrics history from Skydive.