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 of phosphor-logging events to proper Redfish LogEntry format, including populating MessageArgs.
  • 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.