Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Provide a minimal agent for instrumenting methods with flight recorder events
  • Piggybacks on the flight recorder capabilities to provide low overhead event generation, cheap time stamping and the ability for the user to dynamically enable/disable
  • Allows subsequent enablement/disablement of generated events using normal JFR templates
    (In other words, to disable an instrumentation point, no subsequent redefinition is required.) 
  • Clear and precise syntax
  • Minimal overhead (in terms of added code/generated classes)
  • Loadable as an agent into an already running runtime (can redefine)
  • Controllable through a JMX MBean (perhaps simply an operation taking a new probe definition)
  • Must be extremely safe out of the box
    • No calling methods (avoiding halting problems) / unexpected exceptions (except when converters enabled)
    • No implicit type conversions (boxing of wrapper types to primitive types ok?)
    • General catch-all calls to toString(), if at all allowed, must be explicitly enabled
  • Built for production use
    • Need to have sufficient unit testing
    • Need to be tested against larger bodies of code (Oracle can help with Fusion staging and test environments etc)
    • Need to support OracleJDK 8 as well as OpenJDK 11+

...