Debug and Forensics framework

To debug a problem, developers need to have log data, system state data (like disk space, memory, swap usage, etc.) and more fundamental ones like which OS are they running and which version of Ingres are they running. If an end user doesn't have this information, or doesn't include it, it means support teams have to contact them and request it. This is slow and could be avoided by easily automating a forensics too.

This tool will be pluggable. It will allow shell scripts to be placed in a particular directory on the system, and also allow shared libraries to be placed in a particular directory on the system. The tool will automatically run them, and load libraries (using dlopen) calling a predefinited init() method.

It will be possible to schedule periodic forensic dumps (i.e. gather all data every 24 hours for instance), run them in response to certain events (like the database restarting), and more.

The ideal is that it allows making gathering forensic data simple, repeatable, and easily attached (as a single file) to a ticket.

A stretch objective of this project is to optionally transmit this information directly to Ingres (if network access allows for it) such that Ingres can rapidly identify and fix issues possibly before they become an issue in some cases.