History log of /openbmc/telemetry/src/interfaces/ (Results 1 – 25 of 39)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
18e7101c02-Nov-2022 Krzysztof Grobelny <krzysztof.grobelny@intel.com>

simplified appendLimit implementation

AppendLimit is now set to max value by default. This simplifies the code
while keeping most of the feature functionality. This change increases
report version a

simplified appendLimit implementation

AppendLimit is now set to max value by default. This simplifies the code
while keeping most of the feature functionality. This change increases
report version and will cause older report to be deleted.

Tested:
- AppendLimit is set by default to max value
- Telemetry features are working as expected

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

show more ...


/openbmc/telemetry/.gitignore
/openbmc/telemetry/meson.build
/openbmc/telemetry/meson_options.txt
/openbmc/telemetry/src/errors.cpp
/openbmc/telemetry/src/errors.hpp
metric.hpp
/openbmc/telemetry/src/metric.cpp
/openbmc/telemetry/src/metric.hpp
/openbmc/telemetry/src/metric_value.hpp
/openbmc/telemetry/src/metrics/collection_data.cpp
/openbmc/telemetry/src/report.cpp
/openbmc/telemetry/src/report.hpp
/openbmc/telemetry/src/report_factory.cpp
/openbmc/telemetry/src/report_manager.cpp
/openbmc/telemetry/src/sensor.cpp
/openbmc/telemetry/src/sensor.hpp
/openbmc/telemetry/src/trigger.cpp
/openbmc/telemetry/src/trigger_manager.cpp
/openbmc/telemetry/src/types/collection_time_scope.hpp
/openbmc/telemetry/src/types/error_message.hpp
/openbmc/telemetry/src/types/error_type.hpp
/openbmc/telemetry/src/types/operation_type.hpp
/openbmc/telemetry/src/types/report_action.hpp
/openbmc/telemetry/src/types/report_types.hpp
/openbmc/telemetry/src/types/report_updates.hpp
/openbmc/telemetry/src/types/reporting_type.hpp
/openbmc/telemetry/src/types/trigger_types.hpp
/openbmc/telemetry/src/utils/circular_vector.hpp
/openbmc/telemetry/src/utils/contains.hpp
/openbmc/telemetry/src/utils/conversion.hpp
/openbmc/telemetry/src/utils/conversion_trigger.hpp
/openbmc/telemetry/src/utils/dbus_path_utils.cpp
/openbmc/telemetry/src/utils/dbus_path_utils.hpp
/openbmc/telemetry/src/utils/ensure.hpp
/openbmc/telemetry/src/utils/labeled_tuple.hpp
/openbmc/telemetry/src/utils/make_id_name.cpp
/openbmc/telemetry/src/utils/transform.hpp
/openbmc/telemetry/src/utils/variant_utils.hpp
/openbmc/telemetry/subprojects/boost.wrap
/openbmc/telemetry/subprojects/googletest.wrap
/openbmc/telemetry/subprojects/packagefiles/boost/meson.build
/openbmc/telemetry/tests/meson.build
/openbmc/telemetry/tests/src/mocks/metric_mock.hpp
/openbmc/telemetry/tests/src/test_conversion.cpp
/openbmc/telemetry/tests/src/test_ensure.cpp
/openbmc/telemetry/tests/src/test_labeled_tuple.cpp
/openbmc/telemetry/tests/src/test_make_id_name.cpp
/openbmc/telemetry/tests/src/test_report.cpp
/openbmc/telemetry/tests/src/test_report_manager.cpp
/openbmc/telemetry/xyz.openbmc_project.Telemetry.service.in
32305f1405-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 ...


/openbmc/telemetry/meson.build
/openbmc/telemetry/meson_options.txt
/openbmc/telemetry/src/discrete_threshold.cpp
/openbmc/telemetry/src/discrete_threshold.hpp
report_factory.hpp
/openbmc/telemetry/src/numeric_threshold.cpp
/openbmc/telemetry/src/numeric_threshold.hpp
/openbmc/telemetry/src/on_change_threshold.hpp
/openbmc/telemetry/src/report.cpp
/openbmc/telemetry/src/report.hpp
/openbmc/telemetry/src/report_factory.cpp
/openbmc/telemetry/src/report_factory.hpp
/openbmc/telemetry/src/report_manager.cpp
/openbmc/telemetry/src/report_manager.hpp
/openbmc/telemetry/src/state.hpp
/openbmc/telemetry/src/trigger.cpp
/openbmc/telemetry/src/trigger.hpp
/openbmc/telemetry/src/trigger_manager.cpp
/openbmc/telemetry/src/trigger_manager.hpp
/openbmc/telemetry/src/types/error_message.hpp
/openbmc/telemetry/src/types/error_type.hpp
/openbmc/telemetry/src/utils/dbus_path_utils.cpp
/openbmc/telemetry/src/utils/dbus_path_utils.hpp
/openbmc/telemetry/src/utils/ensure.hpp
/openbmc/telemetry/src/utils/make_id_name.cpp
/openbmc/telemetry/src/utils/make_id_name.hpp
/openbmc/telemetry/src/utils/threshold_operations.hpp
/openbmc/telemetry/tests/meson.build
/openbmc/telemetry/tests/src/dbus_environment.cpp
/openbmc/telemetry/tests/src/helpers.hpp
/openbmc/telemetry/tests/src/helpers/types/object_path_helpers.hpp
/openbmc/telemetry/tests/src/main.cpp
/openbmc/telemetry/tests/src/mocks/report_factory_mock.hpp
/openbmc/telemetry/tests/src/params/report_params.hpp
/openbmc/telemetry/tests/src/params/trigger_params.hpp
/openbmc/telemetry/tests/src/stubs/dbus_sensor_object.cpp
/openbmc/telemetry/tests/src/test_conversion.cpp
/openbmc/telemetry/tests/src/test_ensure.cpp
/openbmc/telemetry/tests/src/test_make_id_name.cpp
/openbmc/telemetry/tests/src/test_numeric_threshold.cpp
/openbmc/telemetry/tests/src/test_path_append.cpp
/openbmc/telemetry/tests/src/test_report.cpp
/openbmc/telemetry/tests/src/test_report_manager.cpp
/openbmc/telemetry/tests/src/test_trigger.cpp
/openbmc/telemetry/tests/src/test_trigger_actions.cpp
/openbmc/telemetry/tests/src/test_trigger_manager.cpp
/openbmc/telemetry/tests/src/utils/generate_unique_mock_id.cpp
/openbmc/telemetry/tests/src/utils/string_utils.cpp
/openbmc/telemetry/tests/src/utils/string_utils.hpp
b7b7e1b619-May-2022 Szymon Dompke <szymon.dompke@intel.com>

Update Trigger Actions implementation

Dbus trigger action names were modified to reflect separation of
Telemetry Service from Redfish:
- LogToLogService is renamed to LogToJournal,
- RedfishEvent wa

Update Trigger Actions implementation

Dbus trigger action names were modified to reflect separation of
Telemetry Service from Redfish:
- LogToLogService is renamed to LogToJournal,
- RedfishEvent was renamed to LogToRedfishEventLog

Both of those logging actions, now also include trigger id and threshold
name. Threshold naming logic:
- For discrete triggers, it can be specified by user, if left empty it
will be changed to "{Severity} condition".
- Numeric triggers have no way of naming threshold, instead its type
will be converted to string, example "UpperWarning"
- Discrete OnChange threshold will always be named "OnChange"

Additionally, defect was found with timestamp attached to Trigger Logs:
it was a steady_clock timestamp instead of system_clock. The function
which was supposed to format it was also working incorrectly, and was
improved to work with milliseconds. This change required major refactor
of unit tests, especially for numeric threshold.

Testing done:
- LogToJournal action is working properly,
- LogToRedfishEventLog action is working properly,
- UTs are passing.

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

show more ...

9e8da54617-Feb-2022 Krzysztof Grobelny <krzysztof.grobelny@intel.com>

fixed issue with invalid readings being visible

Before this change readings for sensors that are not yet available were
displayed as value 0.0 with timestamp 1970-01-01 which was meant to
represent

fixed issue with invalid readings being visible

Before this change readings for sensors that are not yet available were
displayed as value 0.0 with timestamp 1970-01-01 which was meant to
represent invalid readings. This behaviour is undesired in case of
periodic report with appendLimit set. After this change invalid readings
are no longer visible.

Tested:
- Readings for sensors that is currently not available are not present
on redfish.
- Confirmed in new unit tests that sensor readings can appear in any
order. And produce correct results.

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

show more ...

493e62eb14-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 ...

f7ea299727-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 ...

fdb06a1411-Feb-2022 Szymon Dompke <szymon.dompke@intel.com>

Report: make dbus properties writable

ReadingParametersFutureVersion interface for Reports is enhanced from
read-only to read write and supports modification of readingParameteres,
which is done by

Report: make dbus properties writable

ReadingParametersFutureVersion interface for Reports is enhanced from
read-only to read write and supports modification of readingParameteres,
which is done by updating metrics at the first place and re-registering
them for sensors updates. Similar ReportActions interface is enhanced to
read write. Additionally reportActions policy was modified that reports
always contain 'LogToMetricReportsCollection' action. The whole change
enables Redfish support for PATCH method added on webserver side.

Tested:
- New unit tests were created, ran all new and previous UTs, all passed
- Tested under QEMU, interface was checked for RW via dbus cli commands,
checked if Reading Parameters of the Report can be read or written,
if metrics are properly updated and registration/unregistration for
updates works properly, checked if actions of Report can be read or
written, if actions are properly updated and related action behavior
follows the change accordingly
- Tested under QEMU, verified if 'LogToMetricReportsCollection' action
is always added when Report is created or when actions of Report are
updated by dbus interface
- Tested via webserver if it communicates properly with dbus interfaces
of Telemetry and read/write operations via Redfish can be successfully
executed

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

show more ...

e6d4887408-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 ...


/openbmc/telemetry/meson.build
report.hpp
report_factory.hpp
report_manager.hpp
trigger.hpp
trigger_manager.hpp
/openbmc/telemetry/src/messages/collect_trigger_id.hpp
/openbmc/telemetry/src/messages/presence.hpp
/openbmc/telemetry/src/messages/trigger_presence_changed_ind.hpp
/openbmc/telemetry/src/messages/update_report_ind.hpp
/openbmc/telemetry/src/report.cpp
/openbmc/telemetry/src/report.hpp
/openbmc/telemetry/src/report_factory.cpp
/openbmc/telemetry/src/report_factory.hpp
/openbmc/telemetry/src/report_manager.cpp
/openbmc/telemetry/src/report_manager.hpp
/openbmc/telemetry/src/telemetry.hpp
/openbmc/telemetry/src/trigger.cpp
/openbmc/telemetry/src/trigger.hpp
/openbmc/telemetry/src/trigger_actions.cpp
/openbmc/telemetry/src/trigger_actions.hpp
/openbmc/telemetry/src/trigger_factory.cpp
/openbmc/telemetry/src/trigger_factory.hpp
/openbmc/telemetry/src/trigger_manager.cpp
/openbmc/telemetry/src/trigger_manager.hpp
/openbmc/telemetry/src/types/report_types.hpp
/openbmc/telemetry/src/utils/messanger.hpp
/openbmc/telemetry/src/utils/messanger_service.cpp
/openbmc/telemetry/src/utils/messanger_service.hpp
/openbmc/telemetry/subprojects/googletest.wrap
/openbmc/telemetry/tests/meson.build
/openbmc/telemetry/tests/src/mocks/report_factory_mock.hpp
/openbmc/telemetry/tests/src/mocks/report_manager_mock.hpp
/openbmc/telemetry/tests/src/mocks/report_mock.hpp
/openbmc/telemetry/tests/src/mocks/trigger_manager_mock.hpp
/openbmc/telemetry/tests/src/mocks/trigger_mock.hpp
/openbmc/telemetry/tests/src/params/report_params.hpp
/openbmc/telemetry/tests/src/test_report.cpp
/openbmc/telemetry/tests/src/test_report_manager.cpp
/openbmc/telemetry/tests/src/test_trigger.cpp
/openbmc/telemetry/tests/src/test_trigger_actions.cpp
b4ef22e407-Feb-2022 Szymon Dompke <szymon.dompke@intel.com>

Report: Add TriggerIds property

This change is adding TriggerIds property for Report interface. It is an
array of strings, each representing id of trigger which may update given
report Readings prop

Report: Add TriggerIds property

This change is adding TriggerIds property for Report interface. It is an
array of strings, each representing id of trigger which may update given
report Readings property, due to UpdateReport action. This properly is
read-only, but it can be changed in the runtime, when:
- New Trigger is made using AddTrigger dbus method, when ReportId
argument contains id of given report.
- Trigger is deleted from dbus, and its ReportNames property included id
of given report.
- ReportNames property of any trigger is updated to include (or not) id
of given report.

When this property is modified by service, signal will be emitted on
dbus for property change.

When there is existing trigger with id of non-existing report in its
ReportNames property, its id will be added to TriggerIds property of
such report, the moment it is created by user.

Testing done:
- new UTs were made, all UTs are passing.
- manual testing on dbus interface was successful.

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

show more ...

94f71c5110-Dec-2021 Szymon Dompke <szymon.dompke@intel.com>

Trigger: make dbus properties writable

This change allows to modify 'Sensors', 'ReportNames' and 'Thresholds'
dbus properties of Trigger interface. They are required by Redfish to
implement PATCH fu

Trigger: make dbus properties writable

This change allows to modify 'Sensors', 'ReportNames' and 'Thresholds'
dbus properties of Trigger interface. They are required by Redfish to
implement PATCH functionality for Trigger schema.

Some backend changes were required to enable this functionality, and as
such few improvements were made for existing code:
- NumericThreshold and DiscreteThreshold now have common implementation
where it was possible.
- Internal sensor info structure for Trigger is now the same as the one
used for Report. This resulted in breaking compatibility with previous
Trigger persistency data.
- Added getInfo / getParams methods for Sensor and Threshold interfaces.
They are used by Trigger dbus getters and persistency mechanism now,
instead of storing this data in Trigger object.

Testing done:
- Unit tests were expanded and are passing
- dbus setters for Sensors and Thresholds are working and modifications
are reflected by calling appropriate getters.

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

show more ...


/openbmc/telemetry/meson.build
/openbmc/telemetry/meson_options.txt
/openbmc/telemetry/src/discrete_threshold.cpp
/openbmc/telemetry/src/discrete_threshold.hpp
sensor.hpp
threshold.hpp
trigger_factory.hpp
/openbmc/telemetry/src/metric.cpp
/openbmc/telemetry/src/numeric_threshold.cpp
/openbmc/telemetry/src/numeric_threshold.hpp
/openbmc/telemetry/src/on_change_threshold.cpp
/openbmc/telemetry/src/on_change_threshold.hpp
/openbmc/telemetry/src/report.cpp
/openbmc/telemetry/src/report.hpp
/openbmc/telemetry/src/report_factory.cpp
/openbmc/telemetry/src/report_factory.hpp
/openbmc/telemetry/src/report_manager.cpp
/openbmc/telemetry/src/report_manager.hpp
/openbmc/telemetry/src/sensor.cpp
/openbmc/telemetry/src/sensor.hpp
/openbmc/telemetry/src/telemetry.hpp
/openbmc/telemetry/src/trigger.cpp
/openbmc/telemetry/src/trigger.hpp
/openbmc/telemetry/src/trigger_actions.cpp
/openbmc/telemetry/src/trigger_actions.hpp
/openbmc/telemetry/src/trigger_factory.cpp
/openbmc/telemetry/src/trigger_factory.hpp
/openbmc/telemetry/src/trigger_manager.cpp
/openbmc/telemetry/src/trigger_manager.hpp
/openbmc/telemetry/src/types/report_types.cpp
/openbmc/telemetry/src/types/report_types.hpp
/openbmc/telemetry/src/types/report_updates.hpp
/openbmc/telemetry/src/types/sensor_types.hpp
/openbmc/telemetry/src/types/trigger_types.hpp
/openbmc/telemetry/src/utils/circular_vector.hpp
/openbmc/telemetry/src/utils/conversion_trigger.cpp
/openbmc/telemetry/src/utils/conversion_trigger.hpp
/openbmc/telemetry/src/utils/dbus_mapper.hpp
/openbmc/telemetry/src/utils/generate_id.cpp
/openbmc/telemetry/src/utils/generate_id.hpp
/openbmc/telemetry/src/utils/labeled_tuple.hpp
/openbmc/telemetry/src/utils/threshold_operations.hpp
/openbmc/telemetry/tests/src/dbus_environment.hpp
/openbmc/telemetry/tests/src/mocks/report_factory_mock.hpp
/openbmc/telemetry/tests/src/mocks/report_mock.hpp
/openbmc/telemetry/tests/src/mocks/sensor_mock.hpp
/openbmc/telemetry/tests/src/mocks/threshold_mock.hpp
/openbmc/telemetry/tests/src/mocks/trigger_factory_mock.hpp
/openbmc/telemetry/tests/src/mocks/trigger_mock.hpp
/openbmc/telemetry/tests/src/params/report_params.hpp
/openbmc/telemetry/tests/src/params/trigger_params.hpp
/openbmc/telemetry/tests/src/test_discrete_threshold.cpp
/openbmc/telemetry/tests/src/test_generate_id.cpp
/openbmc/telemetry/tests/src/test_metric.cpp
/openbmc/telemetry/tests/src/test_numeric_threshold.cpp
/openbmc/telemetry/tests/src/test_on_change_threshold.cpp
/openbmc/telemetry/tests/src/test_report.cpp
/openbmc/telemetry/tests/src/test_report_manager.cpp
/openbmc/telemetry/tests/src/test_sensor.cpp
/openbmc/telemetry/tests/src/test_trigger.cpp
/openbmc/telemetry/tests/src/test_trigger_actions.cpp
/openbmc/telemetry/tests/src/test_trigger_manager.cpp
51f0fd5028-Dec-2021 Krzysztof Grobelny <krzysztof.grobelny@intel.com>

Fixed issue with wrong timestamp

Telemetry service used steady_clock for generating timestamps, but it
produced incorrect time. This change makes telemetry service use
steady_clock for intervals and

Fixed issue with wrong timestamp

Telemetry service used steady_clock for generating timestamps, but it
produced incorrect time. This change makes telemetry service use
steady_clock for intervals and system_clock for timestamps.

Changed readings timestamp to display current timestamp instead of a
time when reading was received.

Tested:
- correct timestamp is visible on dbus
- other telemetry service features are still working

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

show more ...


/openbmc/telemetry/src/details/collection_function.cpp
/openbmc/telemetry/src/details/collection_function.hpp
/openbmc/telemetry/src/discrete_threshold.cpp
/openbmc/telemetry/src/discrete_threshold.hpp
clock.hpp
sensor_listener.hpp
trigger_action.hpp
/openbmc/telemetry/src/metric.cpp
/openbmc/telemetry/src/metric.hpp
/openbmc/telemetry/src/numeric_threshold.cpp
/openbmc/telemetry/src/numeric_threshold.hpp
/openbmc/telemetry/src/on_change_threshold.cpp
/openbmc/telemetry/src/on_change_threshold.hpp
/openbmc/telemetry/src/report.cpp
/openbmc/telemetry/src/report.hpp
/openbmc/telemetry/src/report_factory.cpp
/openbmc/telemetry/src/report_manager.hpp
/openbmc/telemetry/src/sensor.cpp
/openbmc/telemetry/src/sensor.hpp
/openbmc/telemetry/src/trigger.cpp
/openbmc/telemetry/src/trigger_actions.cpp
/openbmc/telemetry/src/trigger_actions.hpp
/openbmc/telemetry/src/trigger_manager.hpp
/openbmc/telemetry/src/types/collection_duration.hpp
/openbmc/telemetry/src/types/duration_types.hpp
/openbmc/telemetry/src/utils/clock.hpp
/openbmc/telemetry/src/utils/detached_timer.hpp
/openbmc/telemetry/subprojects/phosphor-logging.wrap
/openbmc/telemetry/subprojects/sdbusplus.wrap
/openbmc/telemetry/tests/src/dbus_environment.hpp
/openbmc/telemetry/tests/src/fakes/clock_fake.hpp
/openbmc/telemetry/tests/src/helpers.hpp
/openbmc/telemetry/tests/src/helpers/types/duration_types_helpers.hpp
/openbmc/telemetry/tests/src/mocks/sensor_listener_mock.hpp
/openbmc/telemetry/tests/src/mocks/trigger_action_mock.hpp
/openbmc/telemetry/tests/src/params/trigger_params.hpp
/openbmc/telemetry/tests/src/test_discrete_threshold.cpp
/openbmc/telemetry/tests/src/test_metric.cpp
/openbmc/telemetry/tests/src/test_numeric_threshold.cpp
/openbmc/telemetry/tests/src/test_on_change_threshold.cpp
/openbmc/telemetry/tests/src/test_report.cpp
/openbmc/telemetry/tests/src/test_sensor.cpp
/openbmc/telemetry/tests/src/test_trigger_actions.cpp
b8cc78dd29-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 ...


/openbmc/telemetry/meson.build
/openbmc/telemetry/src/discrete_threshold.cpp
/openbmc/telemetry/src/discrete_threshold.hpp
report.hpp
report_factory.hpp
report_manager.hpp
sensor.hpp
trigger_factory.hpp
/openbmc/telemetry/src/metric.cpp
/openbmc/telemetry/src/metric.hpp
/openbmc/telemetry/src/report.cpp
/openbmc/telemetry/src/report.hpp
/openbmc/telemetry/src/report_factory.cpp
/openbmc/telemetry/src/report_factory.hpp
/openbmc/telemetry/src/report_manager.cpp
/openbmc/telemetry/src/report_manager.hpp
/openbmc/telemetry/src/sensor.cpp
/openbmc/telemetry/src/sensor.hpp
/openbmc/telemetry/src/trigger.cpp
/openbmc/telemetry/src/trigger.hpp
/openbmc/telemetry/src/trigger_actions.cpp
/openbmc/telemetry/src/trigger_actions.hpp
/openbmc/telemetry/src/trigger_factory.cpp
/openbmc/telemetry/src/trigger_factory.hpp
/openbmc/telemetry/src/trigger_manager.cpp
/openbmc/telemetry/src/trigger_manager.hpp
/openbmc/telemetry/src/types/operation_type.hpp
/openbmc/telemetry/src/types/report_types.cpp
/openbmc/telemetry/src/types/report_types.hpp
/openbmc/telemetry/src/types/trigger_types.hpp
/openbmc/telemetry/src/utils/conversion.hpp
/openbmc/telemetry/src/utils/conversion_trigger.cpp
/openbmc/telemetry/src/utils/generate_id.cpp
/openbmc/telemetry/src/utils/generate_id.hpp
/openbmc/telemetry/src/utils/labeled_tuple.hpp
/openbmc/telemetry/src/utils/tstring.hpp
/openbmc/telemetry/tests/meson.build
/openbmc/telemetry/tests/src/mocks/report_factory_mock.hpp
/openbmc/telemetry/tests/src/mocks/report_mock.hpp
/openbmc/telemetry/tests/src/mocks/sensor_mock.hpp
/openbmc/telemetry/tests/src/mocks/trigger_factory_mock.hpp
/openbmc/telemetry/tests/src/params/metric_params.hpp
/openbmc/telemetry/tests/src/params/report_params.hpp
/openbmc/telemetry/tests/src/params/trigger_params.hpp
/openbmc/telemetry/tests/src/test_conversion.cpp
/openbmc/telemetry/tests/src/test_generate_id.cpp
/openbmc/telemetry/tests/src/test_metric.cpp
/openbmc/telemetry/tests/src/test_report.cpp
/openbmc/telemetry/tests/src/test_report_manager.cpp
/openbmc/telemetry/tests/src/test_sensor.cpp
/openbmc/telemetry/tests/src/test_trigger.cpp
/openbmc/telemetry/tests/src/test_trigger_manager.cpp
51497a0c09-Nov-2021 Krzysztof Grobelny <krzysztof.grobelny@intel.com>

Using enum class instead of string in more places

ReportingType and ReportUpdates are now used as enum class in more
places than before. Changed how this two fields are stored in
persistent configur

Using enum class instead of string in more places

ReportingType and ReportUpdates are now used as enum class in more
places than before. Changed how this two fields are stored in
persistent configuration. Increased Report::Version to break backward
compatibility. Updated unit tests to verify changed functionality.

Tested:
- All existing tests are passing

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

show more ...

3eb5686520-Sep-2021 Szymon Dompke <szymon.dompke@intel.com>

Add support for AppendLimit and ReportUpdates

Added 2 new properties for Report interface: AppendLimit and
ReportUpdates. They were also added as arguments to the future version
of AddReport method

Add support for AppendLimit and ReportUpdates

Added 2 new properties for Report interface: AppendLimit and
ReportUpdates. They were also added as arguments to the future version
of AddReport method of ReportManager.

ReportUpdates property defines the report update behavior:
- Overwrite: Each report update overrides previous "Readings" property.
"AppendLimit" set by user is not respected - "Readings" property size
is equal to count of all sensor across all metrics defined in report.
- AppendWrapsWhenFull: New readings are appended until limit specified
by "AppendLimit" is reached. Then oldest readings are overwritten by
new ones.
- AppendStopsWhenFull: New readings are appended until limit specified
by "AppendLimit" is reached. Then updates are stopped.
- NewReport: not supported yet and will be implemented in the future.

Please note that if ReportingType is set to OnRequest, those 2 new
properties are ignored, and Readings property will contain one reading
per defined sensor, across all metrics. They are still stored, which
means that if ReportingType will be changed in the runtime, those
properties will be respected.

Tested:
- Both new properties can be accessed from dbus.
- Both properties are reflected in Readings property.
- Old AddReport method is working as before the change.
- UTs are passing.

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

show more ...

e28aa53d27-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 ...

7e098e9316-Sep-2021 Lukasz Kazmierczak <lukasz.kazmierczak@intel.com>

Added support for Enabled property

Enabled property is added so that user can select via dbus interface if
Readings are updated and signal on Readings update is emitted, moreover
Metric calculation

Added support for Enabled property

Enabled property is added so that user can select via dbus interface if
Readings are updated and signal on Readings update is emitted, moreover
Metric calculation on received sensor data is active only when Enabled
is set to true

Tested:
- New unit tests were created, ran all new and previous UTs, all passed
- Tested under QEMU by adding reports for single and multiple sensors,
changing Enabled property and emitting signal of value change for
sensors added into the report, checking if Readings is accordingly
updated or not updated
- Verified persistency, if Enabled property is successfully stored and
restored after Telemetry service restart and also checked if after the
restart dependencies of Enabled (Readings, Metric calculation) are
properly initiated

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

show more ...

2001301a23-Jul-2021 Szymon Dompke <szymon.dompke@intel.com>

Modify Trigger dbus api

'AddTrigger' method is now using array of strings for actions instead
of boolean flags. The action names are following:
- 'UpdateReport' (same as old flag)
- 'LogToLogService

Modify Trigger dbus api

'AddTrigger' method is now using array of strings for actions instead
of boolean flags. The action names are following:
- 'UpdateReport' (same as old flag)
- 'LogToLogService' (old 'LogToJournal' flag)
- 'RedfishEvent' (old 'LogToRedfish' flag)
Additionally, isDiscrete flag was removed from 'AddTrigger' call, as
this value can be extracted depending on threshold.

As a result new 'AddTrigger" signature is: "sasa{os}asv"
Example call parameters:
- TestTrigger 1 UpdateReport 0 0 "a(stsd)" 1 LowerWarning 1000
Either 42.7'
- TestTrigger 2 UpdateReport RedfishEvent 0 0 "a(ssts)" 1 userId_1
Warning 10 15.2'

'Trigger' properties were also modified. Instead of action bool
properties (same as mentioned above), new property was introduced
'TriggerActions' - which has same values as those used in 'AddTrigger'
method. This also affects persistence: store/load functionality was
modified accordingly.

As a side change - isDiscrete is no longer stored, as this can be easily
recreated in the runtime.

Tested:
- Trigger was successfully created using dbus.
- busctl introspect was called on test trigger and properties are
modified and working as intended.
- persistency mechanic is working propetly.

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

show more ...

8069771c04-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 ...

dcc4e19308-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 ...


/openbmc/telemetry/meson.build
/openbmc/telemetry/src/discrete_threshold.cpp
/openbmc/telemetry/src/discrete_threshold.hpp
metric.hpp
report_factory.hpp
sensor.hpp
trigger_factory.hpp
/openbmc/telemetry/src/metric.cpp
/openbmc/telemetry/src/metric.hpp
/openbmc/telemetry/src/numeric_threshold.cpp
/openbmc/telemetry/src/numeric_threshold.hpp
/openbmc/telemetry/src/on_change_threshold.cpp
/openbmc/telemetry/src/on_change_threshold.hpp
/openbmc/telemetry/src/report.cpp
/openbmc/telemetry/src/report.hpp
/openbmc/telemetry/src/report_factory.cpp
/openbmc/telemetry/src/report_factory.hpp
/openbmc/telemetry/src/report_manager.cpp
/openbmc/telemetry/src/report_manager.hpp
/openbmc/telemetry/src/sensor.hpp
/openbmc/telemetry/src/trigger.cpp
/openbmc/telemetry/src/trigger.hpp
/openbmc/telemetry/src/trigger_actions.hpp
/openbmc/telemetry/src/trigger_factory.cpp
/openbmc/telemetry/src/trigger_factory.hpp
/openbmc/telemetry/src/trigger_manager.cpp
/openbmc/telemetry/src/types/collection_duration.hpp
/openbmc/telemetry/src/types/collection_time_scope.hpp
/openbmc/telemetry/src/types/milliseconds.hpp
/openbmc/telemetry/src/types/operation_type.hpp
/openbmc/telemetry/src/types/report_types.cpp
/openbmc/telemetry/src/types/report_types.hpp
/openbmc/telemetry/src/types/trigger_types.hpp
/openbmc/telemetry/src/utils/conversion_trigger.hpp
/openbmc/telemetry/src/utils/detached_timer.hpp
/openbmc/telemetry/src/utils/json.hpp
/openbmc/telemetry/src/utils/labeled_tuple.hpp
/openbmc/telemetry/src/utils/tstring.hpp
/openbmc/telemetry/tests/meson.build
/openbmc/telemetry/tests/src/helpers.hpp
/openbmc/telemetry/tests/src/helpers/labeled_tuple_helpers.hpp
/openbmc/telemetry/tests/src/mocks/metric_mock.hpp
/openbmc/telemetry/tests/src/mocks/report_factory_mock.hpp
/openbmc/telemetry/tests/src/params/metric_params.hpp
/openbmc/telemetry/tests/src/params/report_params.hpp
/openbmc/telemetry/tests/src/params/trigger_params.hpp
/openbmc/telemetry/tests/src/test_discrete_threshold.cpp
/openbmc/telemetry/tests/src/test_metric.cpp
/openbmc/telemetry/tests/src/test_numeric_threshold.cpp
/openbmc/telemetry/tests/src/test_report.cpp
/openbmc/telemetry/tests/src/test_report_manager.cpp
/openbmc/telemetry/tests/src/test_trigger.cpp
9f34679014-Jul-2021 Szymon Dompke <szymon.dompke@intel.com>

Change discrete threshold value to string

For compliance with redfish schema, trigger with discrete
thresholds should use string as a value - instead of double.
This will impact dbus method "AddTrig

Change discrete threshold value to string

For compliance with redfish schema, trigger with discrete
thresholds should use string as a value - instead of double.
This will impact dbus method "AddTrigger" for Trigger interface.
As there are currently no known sensors with discrete values,
telemetry service will still treat the value as a double internally.

Tested:
- UT passed.
- Trigger with discrete threshold value was successfully created
using dbus call.
- local redfish-tests for trigger persistency are passing after
type modification.

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

show more ...

4416fce616-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 ...

a4e6761618-Feb-2021 Cezary Zwolak <cezary.zwolak@intel.com>

Save persistent triggers to storage

Create json storage file for persistent triggers.
Handle persistent dbus property.
Save/remove persistent triggers on add/delete.
Cover code with UTs.

Tested:

Save persistent triggers to storage

Create json storage file for persistent triggers.
Handle persistent dbus property.
Save/remove persistent triggers on add/delete.
Cover code with UTs.

Tested:
- Passed unit tests
- Tested on QEMU
* adding new valid and invalid trigger from cli
* verifying if valid trigger is properly stored
* deleting existed trigger from storage

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

show more ...

f763c9e312-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 ...

9f9ff90a05-Mar-2021 Krzysztof Grobelny <krzysztof.grobelny@intel.com>

Revert "created AddReportFutureVersion dbus method"

This reverts commit 753e4b3c843dd5d1068949c4106a6389f0e0ffbc.

Reason for revert: Breaks bmcweb, same approach is needed for changed properties

C

Revert "created AddReportFutureVersion dbus method"

This reverts commit 753e4b3c843dd5d1068949c4106a6389f0e0ffbc.

Reason for revert: Breaks bmcweb, same approach is needed for changed properties

Change-Id: Id868159df916fcf0bdd7fc5062f8c51187fcc7e2

show more ...

753e4b3c11-Feb-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.

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

show more ...

12