...
- Provide a minimal agent for instrumenting methods with flight recorder events
- Piggybacks on the flight recorder capabilities to:
- Provide Provides low overhead event generation
- Cheap time stamping
- Allows subsequent enablement/disablement of generated events using normal JFR templates
- Clear and precise syntax
(No wildcards. Instrumentation points meant to be added with assistance from tooling, but syntax should be easy enough to be manually edited, if required.) - Minimal overhead in terms of added code/generated classes
(On parity with manually added events.) - Loadable as an agent into an already running runtime
(Can redefine classes.) - 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 possibly 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
- Module safe - only module redefinition is making jdk.jfr readable from instrumented modules
- 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+
...
Overview
Content Tools
ThemeBuilder