...
- 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
- 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
(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)
- 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+
...
{"serverDuration": 99, "requestCorrelationId": "f59dbe2199af765b"}