Next gen instrumentation


Migrated from NovaTec Jira. Original ticket: INSPECTIT-1167

I am opening the ticket for the server side instrumentation. We can discuss than here, log work amount, etc.

Short description: Idea is to change the instrumentation from agent side to the CMR side.. Agent should just send the byte code to the CMR and do nothing in addition.. CMR is responsible for inserting instrumentation in the byte code if necessary.. CMR should also keep a class hierarchy structure per agent/application, which would enable us to easily figure out what should be or would be instrumented when configuration changes as well as to speed up instrumentation of already known classes..

1st milestone: As agreed the 1st milestone should be just to enable the instrumentation via CMR.. There should be no byte code cache implemented on either Agent or CMR.. The CMR should use the configuration classes defined in the CI prototype ticket, so the work will be closely related to the ticket that s not integrated yet.. Still, we assumed this is better option, cause we would anyway soon have the CI ready.. We want to change instrumentation library to ASM and do the instrumentation on our own..

Work done so far: Currently we have fully functional and tested class parsing mechanism and class cache structure.. In addition we invested work in figuring out the instrumentation challenges with the ASM and are close to also close this part of work..

Next steps:

  1. Optimize the class cache structure, so it does not occupy too much heap memory

  2. Finalize the work on the instrumentation based on the stack tables

  3. Check how configuration interacts with class cache and the instrumentation




Ivan Senic


Stefan Siegl



Patrice Bouillet




Fix versions