History log of /openbmc/telemetry/meson.build (Results 1 – 25 of 38)
Revision Date Author Comments
# 4444a13c 08-Dec-2023 Patrick Williams <patrick@stwcx.xyz>

meson: adjust nlohmann-json dependency

- Simplify nlohmann-json dependency in meson.build.
- Use consistent dependency variable names (based on Meson style).
- Align wrap file name with meson wrapdb

meson: adjust nlohmann-json dependency

- Simplify nlohmann-json dependency in meson.build.
- Use consistent dependency variable names (based on Meson style).
- Align wrap file name with meson wrapdb choice for the project.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I2e893fd8c300b36a16d704f2002bb966a6e52ce4

show more ...


# 359b7664 12-Jul-2023 Patrick Williams <patrick@stwcx.xyz>

build: upgrade to C++23

Meson 1.1.1 and GCC-13 both support C++23 and a sufficient portion of
the standard has been implemented. Upgrade the build to leverage it.

Change-Id: If193a9f16c90ba8ac423a

build: upgrade to C++23

Meson 1.1.1 and GCC-13 both support C++23 and a sufficient portion of
the standard has been implemented. Upgrade the build to leverage it.

Change-Id: If193a9f16c90ba8ac423aec7e5660bea524ce891
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# 97c20e2e 12-Apr-2023 Patrick Williams <patrick@stwcx.xyz>

meson: remove deprecated get_pkgconfig_variable

Since meson 0.56, the `get_pkgconfig_variable` has been deprecated. In
meson 0.58 the `get_variable` was enhanced to no longer require the
`pkgconfig

meson: remove deprecated get_pkgconfig_variable

Since meson 0.56, the `get_pkgconfig_variable` has been deprecated. In
meson 0.58 the `get_variable` was enhanced to no longer require the
`pkgconfig` keyword argument. Ensure meson 0.58 is required and update
the usage of all `get_pkgconfig_variable` and `get_variable` to be the
modern variant.

Change-Id: Ibd32733f23eed0d329756e97a65b12f2631f9a61
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>

show more ...


# 62c08e9b 16-Sep-2022 Krzysztof Grobelny <krzysztof.grobelny@intel.com>

Redesigned error handling

Current error handling send only error code, which is not enough to
display detailed information. New error handling in additional to
error code send property name. This al

Redesigned error handling

Current error handling send only error code, which is not enough to
display detailed information. New error handling in additional to
error code send property name. This allows to send meaningful messages
back to used about errors.

Tested:
- Old redfish code properly handles errors (reads only error_code)
- Redfish version which read property name from error displays more
detailed error information

Change-Id: I54caa20881ac3f3e38cb295a3aa95ddab491303f
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>

show more ...


# 1b03c8d6 13-Oct-2022 Szymon Dompke <szymon.dompke@intel.com>

Update meson and subprojects

Few changes related to meson:
- GTest and boost were updated.
- Boost is now built locally in case it is not installed on system.
- Minor meson.build refactor.

Testing

Update meson and subprojects

Few changes related to meson:
- GTest and boost were updated.
- Boost is now built locally in case it is not installed on system.
- Minor meson.build refactor.

Testing done:
- local build is working fine, when subprojects are not installed on the
system,
- local build is working fine, when subprojects are installed on the
system,
- yocto build is working fine.

Signed-off-by: Szymon Dompke <szymon.dompke@intel.com>
Change-Id: Ib62092946d6ffafb1884d1ba3eab97bed243dd12

show more ...


# 458a37d1 05-Aug-2022 Szymon Dompke <szymon.dompke@intel.com>

Parameterize .service file in meson

Depending on environment, TelemetryService may require some services
to be present in the system, or specific order of starting them. This
may be especially neede

Parameterize .service file in meson

Depending on environment, TelemetryService may require some services
to be present in the system, or specific order of starting them. This
may be especially needed for some additional sensors providers, or
persistency sync services.

This change is parametrizing following .service file options:
- After=
- Before=
- Requires=
- Wants=

They can be passed as array option to meson, like this:
-Dservice-[option]="[....]"
Example:
-Dservice-wants="['some.service', 'other.service']"

Testing done:
- .service file is configured properly when new 4 options are passed.
- .service file remains unchanged if none of new options are passed.

Change-Id: I0982263c8981355db15527163460cc75ae197044
Signed-off-by: Szymon Dompke <szymon.dompke@intel.com>

show more ...


# 32305f14 05-Jul-2022 Szymon Dompke <szymon.dompke@intel.com>

Add length limit for user-defined values

Previously, the only limit for most user-defined values like id or name
was the one enforced by dbus, which was fairly big. In order to save
space used by pe

Add length limit for user-defined values

Previously, the only limit for most user-defined values like id or name
was the one enforced by dbus, which was fairly big. In order to save
space used by persistent data, new meson options were added, with length
limit for those fields.

This directly impacts following dbus interfaces:
- TriggerManager.AddTrigger:
- Id
- Name
- Reports
- Thresholds (only name of discrete threshold)
- Trigger.Name
- Trigger.Reports
- Trigger.Thresholds (only name of discrete threshold)
- ReportManager.AddReport(FutureVersion):
- Id
- Name
- MetricParameters (metricId)
- Report.Name
- Report.ReadingParameters (metricId)

For Id fields we support 'prefixes', which also are limited, but those
limit are separate. So if limit for prefix is set to 5 and limit for
id/name is set to 5, following Ids are fine:
- 12345/12345
- 12345
and following are not:
- 123456/1234
- 1/123456

Testing done:
- UTs are passing.
- new limits are reflected when calling mentioned dbus interfaces.

Signed-off-by: Szymon Dompke <szymon.dompke@intel.com>
Change-Id: I29291a1cc56a344d92fb65491c9186fdb90a8529

show more ...


# 1cdd7e4f 08-Jun-2022 Szymon Dompke <szymon.dompke@intel.com>

Use proper dbus path when possible.

Following methods and properties were updated to use full dbus path,
instead of internal telemetry id:
- TriggerManager.AddTrigger() - 'reportIds' arg
- Trigger.R

Use proper dbus path when possible.

Following methods and properties were updated to use full dbus path,
instead of internal telemetry id:
- TriggerManager.AddTrigger() - 'reportIds' arg
- Trigger.ReportIds - renamed to 'Reports'
- Report.TriggerIds - renamed to 'Triggers'

Testing done:
- UTs were updated and are passing.

Signed-off-by: Szymon Dompke <szymon.dompke@intel.com>
Change-Id: I78d812d38289fac575d25b48503cc8b9c6f736fe

show more ...


# f8ae65ca 21-Mar-2022 Patrick Williams <patrick@stwcx.xyz>

meson: simplify dependencies

Leverage wrapfile `[provide]` directives to simplify the dependency
searching in the meson.build.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I5bbde5

meson: simplify dependencies

Leverage wrapfile `[provide]` directives to simplify the dependency
searching in the meson.build.

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I5bbde5732df9604b6ea45eaae519bdf64c27ee3c

show more ...


# 493e62eb 14-Feb-2022 Krzysztof Grobelny <krzysztof.grobelny@intel.com>

made MetricValues persistent

MetricValues are persistent for reportUpdates AppendStopsWhenFull and
reportingType different than OnRequest.

Tested:
- New unit tests are passing
- Confirmed MetricVal

made MetricValues persistent

MetricValues are persistent for reportUpdates AppendStopsWhenFull and
reportingType different than OnRequest.

Tested:
- New unit tests are passing
- Confirmed MetricValues are preserved after restarting telemetry
service

Change-Id: I7e1990fb391da9debb0d7df2f1dbda86473350cc
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>

show more ...


# f7ea2997 27-Jan-2022 Krzysztof Grobelny <krzysztof.grobelny@intel.com>

added support for onChange report

Report is now notified when metric changes and updates reading values.

Tested:
- Added new unit tests
- OnChange report updates Readings when metric values cha

added support for onChange report

Report is now notified when metric changes and updates reading values.

Tested:
- Added new unit tests
- OnChange report updates Readings when metric values changes

Change-Id: I3be9ef7aa0486cb15bac627aa1de5cc632613b3b
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>

show more ...


# e6d48874 08-Feb-2022 Krzysztof Grobelny <krzysztof.grobelny@intel.com>

Removed dependency to TriggerManager

introduces Messanger class which allows to send messages directly to
subscribed targets, which allows to break dependencies between classes.

Testes:
- All unit

Removed dependency to TriggerManager

introduces Messanger class which allows to send messages directly to
subscribed targets, which allows to break dependencies between classes.

Testes:
- All unit tests are passing
- Links are correctly updated
- Report is correctly updated by Trigger Action

Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
Change-Id: I32d3aaba22f9ec07e611f53fe553bd27e1c04c6d

show more ...


# cd5b0b7e 20-Jan-2022 Ankita Vilas Gawade <ankita.gawade@intel.com>

Add limit to Metric URIs to avoid buffer overflow

This commit Limits the Number of Metrics to 150 URIs to avoid
overpopulating the Event to be Sent. This is Necessary to avoid Buffer
Overflow Durin

Add limit to Metric URIs to avoid buffer overflow

This commit Limits the Number of Metrics to 150 URIs to avoid
overpopulating the Event to be Sent. This is Necessary to avoid Buffer
Overflow During Creation of Periodic MetricReport (RedfishEvent) via
Event Service Subscription. This Buffer overflow occurs as the max size
of buffer used to send Events is limited to 1024*64

This commit also removes max-reading-parameter as max-number-metrics
indirectly places constraint over number of reading parameters (which
makes them mutually exclusive).The parameter max-number-metrics provides
a better control over size of the metrics compared to
max-reading-parameter as it restricts the number of overall uris instead
of number of metrics.

Additional limit for appendLimit was added to ensure we can store all
metric values in persistent memory.

Tested:
- Created Metric Report Defination by POST to
/redfish/v1/TelemetryService/MetricReportDefinitions/
with <150, =150 and >150 Metric Uris
Successfully returned error for metric uris>150.
- Observed no buffer overflow for Maximum of 150 Metric Uris.
- Verified buffer Overflow by Subscribing to Metric Reports
using SSE.
- Test case Passed
[ RUN ] TestReportManager.failToAddReportWith
MoreSensorParametersThanExpected
[ OK ] TestReportManager.failToAddReportWith
MoreSensorParametersThanExpected (10 ms)
[ RUN ] TestReportManager.failToAddReportWith
MoreMetricsThanExpected
[ OK ] TestReportManager.failToAddReportWith
MoreMetricsThanExpected (20 ms)
[ RUN ] TestReportManager.failToAddReportWith
AppendLimitGreaterThanMax
[ OK ] TestReportManager.failToAddReportWith
AppendLimitGreaterThanMax (20 ms)

Signed-off-by: Ankita Vilas Gawade <ankita.gawade@intel.com>
Change-Id: I113c15c7b1054364d827f39582c7d3fbe9495d12

show more ...


# b8cc78dd 29-Nov-2021 Krzysztof Grobelny <krzysztof.grobelny@intel.com>

Api changes in AddReportFuture version

Added support for CollectionFunction, CollectionDuration,
CollectionTimeScope, ReportUpdates, AppendLimit.

New API separates Id and Name, user can decide to p

Api changes in AddReportFuture version

Added support for CollectionFunction, CollectionDuration,
CollectionTimeScope, ReportUpdates, AppendLimit.

New API separates Id and Name, user can decide to pass only Name
to auto generate Id or pass Id which needs to be unique.

Tested:
- No functional changes to old API, everything works as before
- All use cases can be replaced with new API to achieve same results
- New features which require new API work as expected

Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
Change-Id: I647efab36d90a548754f89968223e162a087481e

show more ...


# 937eaaf8 03-Dec-2021 Patrick Williams <patrick@stwcx.xyz>

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:

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

show more ...


# bdf8719f 03-Dec-2021 Patrick Williams <patrick@stwcx.xyz>

build: fix deprecated meson function

Fix the following meson warning:
WARNING: Project targeting '>=0.57.0' but tried to use feature
deprecated since '0.56.0': Dependency.get_pkgconfig_varia

build: fix deprecated meson function

Fix the following meson warning:
WARNING: Project targeting '>=0.57.0' but tried to use feature
deprecated since '0.56.0': Dependency.get_pkgconfig_variable. use
Dependency.get_variable(pkgconfig : ...) instead

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Ifab131f5d20a88048bcf6649ab8a1ac4bfbd81d9

show more ...


# e28aa53d 27-Oct-2021 Szymon Dompke <szymon.dompke@intel.com>

Add Id to Trigger

Currently, Trigger is using Name as unique identifier. By adding Id, we
can be compliant with redfish specification:
- Id will be used as unique identifier
- Name will be used as h

Add Id to Trigger

Currently, Trigger is using Name as unique identifier. By adding Id, we
can be compliant with redfish specification:
- Id will be used as unique identifier
- Name will be used as human readable, non-unique name

AddTrigger dbus method is now requiring both id and name. Each of them
can be passed as empty string and the service will fill them with
correct values. If only id is an empty string, name will be used to
generate its value.

Dbus object path and persistent storage filename are now be based on id,
instead of name.

Added validation for AddTrigger:
- correct characters in id
- max id length

Added Name property for Trigger object, which can be modified from dbus.

Testing done:
- Unit test added and passing
- Trigger was added using dbus, without errors
- Id generation is working properly
- Name property is accessible and writable from dbus

Signed-off-by: Szymon Dompke <szymon.dompke@intel.com>
Change-Id: Ibb553586eaf51943044c93a35bc0725e6ef67ce9

show more ...


# 934201f7 06-Oct-2021 Patrick Williams <patrick@stwcx.xyz>

build: switch to C++20

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: I16600d03a8fea15db16ca254ab6a0b3864562b6b


# 8069771c 04-Mar-2021 Krzysztof Grobelny <krzysztof.grobelny@intel.com>

added support for Collection Functions

new supported operations: min,max,sum,avg
new supported time scopes: interval,startup

added unit test to verify that each collection function returns correct

added support for Collection Functions

new supported operations: min,max,sum,avg
new supported time scopes: interval,startup

added unit test to verify that each collection function returns correct
timestamp and value

Tested:
- POST/GET on telemetry features in bmcweb, no regression detected
- Using dbus API metric with collection function works as expected

Change-Id: Ib364c433915e07fd7a102f00109525362c40ab8a
Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>

show more ...


# a74e44f6 23-Jul-2021 Lukasz Kazmierczak <lukasz.kazmierczak@intel.com>

Extending meson build system to support fast compilation during development stage

Tested compilation against 3 build configurations
- with lto for src and tests/src (for release sw):
all: ~3 min;

Extending meson build system to support fast compilation during development stage

Tested compilation against 3 build configurations
- with lto for src and tests/src (for release sw):
all: ~3 min; change in cpp file: ~2 min
- with lto for src and no_lto for tests/src (for release sw):
all: ~2 min; change in cpp file:~ 40 sec
- after using scripts/configure_fast_compilation.sh (for development only):
all: ~1.75 min; change in cpp file: ~20 sec

Signed-off-by: Lukasz Kazmierczak <lukasz.kazmierczak@intel.com>
Change-Id: Idf435d8455260d2d988cb7286d71401f21fd03e2

show more ...


# dcc4e193 08-Mar-2021 Krzysztof Grobelny <krzysztof.grobelny@intel.com>

created AddReportFutureVersion dbus method

New method will support CollectionTimeScope, CollectionDuration

In order to make not breaking interface changes bmcweb will switch to
AddReportFutureVersi

created AddReportFutureVersion dbus method

New method will support CollectionTimeScope, CollectionDuration

In order to make not breaking interface changes bmcweb will switch to
AddReportFutureVersion, then AddReport will be changed to match
AddReportFutureVersion, then redfish will switch back to use AddReport,
then AddReportFutureVersion will be removed.

Tested:
- Verified that current version of bmcweb works fine with old API

Signed-off-by: Krzysztof Grobelny <krzysztof.grobelny@intel.com>
Change-Id: I51a9b7fb2f4da5b8d2f688ccd5e93710352b1ac7

show more ...


# 4416fce6 16-Mar-2021 Cezary Zwolak <cezary.zwolak@intel.com>

Read persistent triggers from storage

Read json storage file for persistent triggers.
Add trigger to telemetry service.
Cover code with UTs.

Tested:
- Passed unit tests
- Tested on QEMU
* s

Read persistent triggers from storage

Read json storage file for persistent triggers.
Add trigger to telemetry service.
Cover code with UTs.

Tested:
- Passed unit tests
- Tested on QEMU
* starting app without configuration
* restart app with configuration stored
* restart app with configuration in incorrect version
* restart app with configuration malformed

Change-Id: I2cb9324abdb8323be8a7f0c932ed7f70c5bc2891
Signed-off-by: Cezary Zwolak <cezary.zwolak@intel.com>
Signed-off-by: Lukasz Kazmierczak <lukasz.kazmierczak@intel.com>

show more ...


# 32859b63 19-May-2021 Karol Niczyj <karol.niczyj@intel.com>

Add limit for report name length

Added limit for report name length, parametrized with
max-report-name-length option, because we cannot
remove reports with too long report name.

Tested:
- Confirmed

Add limit for report name length

Added limit for report name length, parametrized with
max-report-name-length option, because we cannot
remove reports with too long report name.

Tested:
- Confirmed that report with name length equal to 4096
cannot be generated via bmcweb (POST
redfish/v1/TelemetryService/MetricReportDefinitions
fails with code 500)
- Confirmed that report with name length equal to 4095
can be generated and removed via bmcweb
- Added unit-test that test that report with name
length equal to max-report-name-length + 1 cannot
be generated
- Added unit-test that test that report with name
length equal to max-report-name-length can
be generated

Change-Id: I6868320f831079af903f3624d1beff648059e351
Signed-off-by: Karol Niczyj <karol.niczyj@intel.com>

show more ...


# f763c9e3 12-Mar-2021 Szymon Dompke <szymon.dompke@intel.com>

Added discrete threshold trigger support

Implemented discrete threshold logic
Discrete trigger with empty threshold array is handled as 'onChange'
Added unit tests coverage for discrete trigger

Sup

Added discrete threshold trigger support

Implemented discrete threshold logic
Discrete trigger with empty threshold array is handled as 'onChange'
Added unit tests coverage for discrete trigger

Supported scenarios:
-discrete threshold with value and dwell time
-discrete threshold with value, without dwell time
-discrete trigger without threshold ('onChange')

Tests:
-Unit tests passed

Change-Id: Id60a48f4113bd955d97e154888c00d1b6e5490af
Signed-off-by: Szymon Dompke <szymon.dompke@intel.com>

show more ...


# 596a9945 27-Jan-2021 Wludzik, Jozef <jozef.wludzik@intel.com>

Fix meson file and remove warnings from compilation

Fixed meson file by applying proper dependency. Removed boost from
subprojects because boost does not support cmake and meson. User
is able to bui

Fix meson file and remove warnings from compilation

Fixed meson file by applying proper dependency. Removed boost from
subprojects because boost does not support cmake and meson. User
is able to build boost manually or using a script
boost_build_1.74.0.sh and set BOOST_ROOT variable to build files.
Then reruning meson should detect boost dependency with positive
result.

Removed all warnings from compilation by applying a new flag for
boost - BOOST_ALLOW_DEPRECATED_HEADERS, after boost update this
flag should be removed. Changed tmpnam() with temp_directory_path
provided by std::filesystem.

Tested:
- Built telemetry with success in cases when different components
are not installed on system: nlohmann, sdbusplus, googletest,
phosphor-logging.
- Using BOOST_ROOT variable that points to installation location
of boost allows to build telemetry wihtout boost installed on
system.
- Unit test passed.

Change-Id: I8d430f4c51b7bc6669c8533e1a76c4666efd4fc6
Signed-off-by: Wludzik, Jozef <jozef.wludzik@intel.com>

show more ...


12