Extensible and configurable java agent to instrument programs running on the JVM