Modern event logs in OpenBMC (part 2)
This is part 2 in a series of updates on event logs; see part 1.
Current Status
In the last part I gave the following upcoming work items:
- Allow-list / Block-list support in
phosphor-logging
. - Changing
AdditionalData
to be a dictionary. (done) - Generation of the Redfish Message Registry. (done)
- Translation in
bmcweb
ofphosphor-logging
events to proper RedfishLogEntry
format, including populatingMessageArgs
. - Adding ‘Hint’ support in
Logging.Create
.
AdditionalData
The Logging.Entry
’s AdditionalData
field has been migrated to be a
dictionary.
A sample of a busctl introspect
shows the new type:
xyz.openbmc_project.Logging.Entry interface - - -
.GetEntry method - h -
.AdditionalData property a{ss} 8 "READING_VALUE" "98.6" "SENSOR_NAME" "Inlet Temperature" "THRESHOLD_VALUE" "40.0" "UNITS" "xyz.openbmc_project.Sensor.Value.Unit.DegreesC" "_CODE_FILE" "../log_create_main.cpp" "_CODE_FUNC" "int generate_event(const std::string&, const nlohmann::json_abi_v3_11_2::json&)" "_CODE_LINE" "34" "_PID" "89391" emits-change writable
.EventId property s "" emits-change writable
.Id property u 1 emits-change writable
.Message property s "xyz.openbmc_project.Sensor.Threshold.ReadingAboveUpperSoftShutdownThreshold"
Registry Generation
Redfish Message Registries are now being generated from
phosphor-dbus-interfaces[1,2]. These are
packaged into a separate phosphor-dbus-interface-redfish-registry
package,
which are not currently installed on the BMC, but would be installed at
/usr/share/redfish-registry
. I expect that bmcweb
will eventually process
these at build-time (like existing Redfish Message Registries) and these will
never need to be installed, but the capability is there.
I’ve uploaded a sample Registry to Gist but you can also
generate the full set from either a normal phosphor-dbus-interfaces
meson
build or check the packages-split
tree in a bitbake build.