logging and reporting
Pre-release
Pre-release
cortlandstarrett
released this
23 Apr 15:41
·
87 commits
to main
since this release
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.