Collecting System Metrics from CollectD is broken

10 views
Skip to first unread message

David Arjona

unread,
May 10, 2023, 10:43:57 AM5/10/23
to ONOS Discuss

I am testing an ONOS cluster using Docker containers. As part of my tests, I am trying to collect system's metrics using the CollectD agent (https://wiki.onosproject.org/display/ONOS/Collecting+System+Metrics+from+CollectD+Agent).


Part I - Using ONOS Docker:

At the latest ONOS Docker container (onosproject/onos:2.7-latest), the collectd version that gets installed is 5.9.0. This version has a dependency problem that has been documented, but not completely solved. The dependency error messages are:

ERROR: dlopen("/usr/lib/collectd/python.so") failed: /usr/lib/collectd/python.so: undefined symbol: PyFloat_Type. The most common cause for this problem is missing dependencies. Use ldd(1) to check the dependencies of the plugin / shared object.
plugin_load: Load plugin "python" failed with status 2.
[2023-05-10 14:08:18] plugin_load: plugin "logfile" successfully loaded.
ERROR: dlopen("/usr/lib/collectd/python.so") failed: /usr/lib/collectd/python.so: undefined symbol: PyFloat_Type. The most common cause for this problem is missing dependencies. Use ldd(1) to check the dependencies of the plugin / shared object.
Error: Parsing the config file failed!

So I tried to install a different collectd version, but the ONOS Docker container does not allow to install the newest version (5.12.0) because it requires a more recent libc6 version (>= 2.34) than the one currently installed. Since libc6 affects many other packages, updating it seems out of reach.


Part II - Using Ubuntu Docker:

So I tried installing ONOS in an Ubuntu Docker container (ubuntu:22.04), installed the latest collectd version (5.12.0) and used the same cluster configuration.

In this setup, collectd works fine, although I had to modify the code at https://github.com/gunine/write_onos to comply with Python3 requirements. Unfortunately, when the network gets created using mininet, the controller is able to recognize the ovf switches, but it cannnot detect the links between them, and I do not know why. It seems that something is not correctly configured. My Ubuntu container is detecting the other controllers that are still using the ONOS container, and is also able to detect the switches, but it cannot see the links between the switches and it does not function as a controller.


Can anybody help to find a solution for either of the parts I have described above?

Regards,

David
Reply all
Reply to author
Forward
0 new messages