Initial implementation of Telemetry service

Implemented main application of Telemetry service.
Added ReportManager interface. Added MaxReports and
PollRateResolution properties to ReportManager interface.
Implemented simple logger.

Tested:
 - Built without Yocto and ran on x86 platform with success
 - Added telemetry to romulus image using
   recipe-phosphor/telemetry from meta-phosphor repository
 - Started as service in romulus image in QEMU with success
 - Verified that all added properties are present in dbus

Change-Id: I26af7a19b1f9cac32e9e9da65523d72a36e13855
Signed-off-by: Wludzik, Jozef <jozef.wludzik@intel.com>
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
11 files changed
tree: 3c4d06d07f69409f6f2eee13ce3a8a518b0f2fa3
  1. src/
  2. subprojects/
  3. .clang-format
  4. .gitignore
  5. LICENSE
  6. MAINTAINERS
  7. meson.build
  8. README.md
  9. xyz.openbmc_project.Telemetry.service.in
README.md

Telemetry

This component implements middleware for sensors and metrics aggregation.

Capabilities

This application is implementation of Telemetry proposed in design[1].

It's responsible for:

  • on-demand creation of metric reports,
    • aggregated sets of sensor values available in system [2],
  • access to metric report in both pull and push model (triggers),
  • run-time monitoring of sensor[3] updates.

Use-cases

  • generic and centralized way to observe telemetry data inside system
  • back-end for Redfish TelemetryService[4]

References

  1. OpenBMC platform telemetry design
  2. Sensor support for OpenBMC
  3. dbus-sensors
  4. Redfish TelemetryService