Skip to content

logging and reporting

Pre-release
Pre-release
Compare
Choose a tag to compare
@cortlandstarrett cortlandstarrett released this 23 Apr 15:41
· 87 commits to main since this release
46c88b2

This revision makes changes to logging and reporting as well as architectural changes
in the logging and inter-process communication technologies. 'log4cplus' is now the
fundamental logging technology. This brings a great deal of configurability with directing
logging data to appenders of different types including rolling file appenders and Kafka
appenders.
The benchmarking probe is implemented as a (configurable) logger now. This lets us
turn it on and off as needed.
A back end 'dashboard' application is prototyped (metrics/pvstats.py).

Here is a list of changes in the usage:

  • The reception kafka topic is now called: Protocol_Verifier_Reception
  • JSON messages written to Protocol_Verifier_Reception no longer need to be prepended with a length. Compliant JSON is now received.
  • The logging folder hierarchy has been changed and documented in the 188 implementation note.
  • There are 2 new topics to which the Protocol Verifier publishes reporting information.
    • 'Protocol_Verifier_InfoWarn' carries the status of jobs. Job failures are reported as Warnings; job successes are logged as Information. Other errors and failures are reported on this topic. (This was formerly the Verifier.log.) In file-based mode, this information will go to pv.log.
    • 'Protocol_Verifier_Statistics' carries PV statistical information generated by Job Management. A key statistic here is the total number of assigned jobs. In file-based mode, this information will go to pv_jm.log.
  • The Benchmarking Probe is now configured as a logger. The contents of the messages are JSON. Only aeordering_event_processed and svdc_*_processed are posted to this topic. It is disabled by default. To enable it:
    • set the pv.benchmark logger to INFO.
    • See benchmark.py for an example of interrogating the probe data.
    • The messages are JSON.
  • The docker-compose files now refer to separate log-config files, one for file-based logging and the other for kafka-based logging.