multiple telemetry designs
Shawn McCarney
shawnmm at linux.vnet.ibm.com
Fri Oct 25 04:13:41 AEDT 2019
I've reviewed both designs, although I cannot say I understand them both
in depth.
With that disclaimer, here is my 2 cents:
* Both proposals are thoughtful with a lot work put into them.
* bmcweb has a lot of a sensor code that is quite complex that is
dependent on the current D-Bus sensors and associations. It would
require a lot of work and re-testing to ensure a different interface to
sensor data doesn't break current systems. The code would be even more
complex if it had to support two different sensor data interfaces.
* There are sensor readings that cannot be collected by reading files in
the file system. Some are collected by direct I2C reads or other
methods. If my surface understanding of collectd is correct, plug-ins
would need to be written to handle these "non-file" sensors.
* For the reasons above, I'd prefer to see D-Bus continue to be the
"public API" to sensor data. D-Bus is the central data sharing
repository on the OpenBMC. How the sensor data gets on D-Bus is
implementation detail and can vary by system and by project. It can be
obtained by hwmon, collectd, and many other ways. As long as it is
published on D-Bus, other applications (like bmcweb) can easily consume it.
* It sounds like the RRD format would be an efficient way to store
sensor data. I do worry about the space and CPU required to store
telemetry data. The OpenBMC stack is going to be used on some big
servers, and they are going to have a large number of sensors.
* Could the two proposals be merged, with D-Bus providing the public API
to the data? Maybe something like the following? 1) Continue to store
current sensor values on D-Bus using the existing architecture. Sensor
values come from a variety of sources. 2) An application obtains
current sensor values from D-Bus and stores them with timestamps in RRD
to provide efficient history/telemetry. 3) A new D-Bus interface/method
is created to obtain the history/telemetry data. 4) bmcweb uses the
current D-Bus interfaces for the Sensor URIs (as it does today) and uses
the new D-Bus interface/method for Telemetry URIs?
Thanks,
Shawn
More information about the openbmc
mailing list