meson: fix phosphor-logging dependency

When using the phosphor-logging dependency from the subproject, the
repository fails to build with a number of missing header errors:

../src/report.cpp:6:10: fatal error: phosphor-logging/log.hpp: No such file or directory
    6 | #include <phosphor-logging/log.hpp>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~

Phosphor-logging itself now uses meson, so it can be picked up as a
proper subproject dependency rather than attempting to find the header
files inside the subproject repository.  Switch the meson dependency
invocation to fallback to the subproject appropriately.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I9d90e245169366ff1046c30c516af871b5c64eb3
1 file changed
tree: 9e7353c9ebdeb5d9f6e1f07320dd6a14d6855dab
  1. redfish-tests/
  2. scripts/
  3. src/
  4. subprojects/
  5. tests/
  6. .clang-format
  7. .gitignore
  8. LICENSE
  9. MAINTAINERS
  10. meson.build
  11. meson_options.txt
  12. OWNERS
  13. README.md
  14. 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 OpenBMC design docs [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]

How to build

There are two way to build telemetry service:

  • using bitbake in yocto environment
  • using meson as native build

To build it using bitbake follow the guide from OpenBMC docs[5]. To build it using meson follow the quick guide to install meson[6] and then run below commands

meson build
cd build
ninja

After successful build you should be able to run telemetry binary or start unit tests

./tests/telemetry-ut
./telemetry

In case if system is missing boost dependency, it is possible to build it locally and set BOOST_ROOT environment variable to location of built files for meson. After this change meson should be able to detect boost dependency. See [7] for more details.

Notes

More information can be found in OpenBMC docs repository [8].

References

  1. OpenBMC platform telemetry design
  2. Sensor support for OpenBMC
  3. dbus-sensors
  4. Redfish TelemetryService
  5. Yocto-development
  6. Meson-Quick-Guide
  7. Meson-Boost-dependency
  8. OpenBMC-docs-repository