Implement auto instrumentation under GraalVM static compilation on OTel Java Agent
summary
Implements static instrumentation so OpenTelemetry Java Agent works with GraalVM native-image by running a pre-running pruning phase plus the native-image agent that intercepts bytecode transforms, records transformed and dynamically generated classes, and emits reflection/proxy configs. Builds an executable native image that boots in about 0.06s versus ~6s (≈100× faster) and shows roughly 5× lower memory, while traces, spans, and metrics are fully collected; prototype works but is not yet production ready and needs broader testing and phase consolidation.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 1:50Modern Java challenges
- 3:57GraalVM impact on Java
- 5:00Java agents under GraalVM
- 6:27Auto-instrumentation design
- 7:55Native Image agent
- 10:50Transformed classes in GraalVM
- 11:32Solution demo
- 13:23Performance results
- 14:28Future challenges
- 15:54Q&A
related talks
39mAuto-Instrumenting Go Libraries for Tracing with eBPF and OpenTelemetry
30mInstrument Your Java Applications with OpenTelemetry!
41mGRAALVM with Groovy & Kotlin
36mThe Magic of OpenTelemetry: Rewriting Your App in Production
26mBuild-Time Auto-Instrumentation in Android
03h 07mEverything you need to know about GraalVM
37mTurning GraalVM from Research to Product
50mGraalVM for Java developers
