The diagnosis process for
GPII-2160 has been very helpful for informing the requirements for logging and journalling to help remote diagnosis of processes. In order to ensure that we can replicate 100% of the context for system failures, we need to make sure that all of the relevant payloads appear in the logs - right now we truncate these based on the configurable fluid.logObjectRenderChars which imposes a threshold by character count to prevent the logs being swamped dumping bulky or circular objects.
In practice we need more fine-grained control than this - some system payloads are absolutely crucial for diagnosis, and should be logged in their entirety regardless of size - these are typically the ones dispatched to the gpii.flowManager.logAndNotify method in FlowManagerRequests.js . If we ensure this, we can then reduce fluid.logObjectRenderChars since in other cases it does indeed just add unhelpful bulk when dumping activity traces and sections of component tree.
At a minimum we should log 100% of
i) The output of the device reporter and process reporter
ii) The user's preference set
iii) The input to the matchmaker
iv) The output from the matchmaker
v) The input payloads to any settingsHandler methods