v0.8.0 - GC Overlay & Diagnostic Improvements
Phase 13: GC Overlay & Diagnostic Improvements
New Features
GC Overlay for Activities - Correlate GC pause events with ActivitySource spans to identify requests impacted by garbage collection:
# Capture activities and GC simultaneously
collect_events(kind="activities") → act-handle
collect_events(kind="gc") → gc-handle
# Correlate to find impacted spans
query_collection(handle="act-handle", view="gc-overlay", gcHandle="gc-handle")Output includes:
- Impacted activities ranked by GC pause percentage
- Per-activity overlap metrics (pauseMs, pausePercent)
- Summary totals (impacted count, total GC overlap time)
Improvements
Contention Diagnostics on Linux - Improved hints when collect_events(kind="contention") returns no events on Linux (known EventPipe limitation). Now explicitly suggests:
collect_thread_snapshot()followed byquery_snapshot(view="lock-graph")to see contended SyncBlocks with waiter counts
Technical Notes
- LTTng-based contention was evaluated but requires
CAP_SYS_ADMINwhich is too invasive for sidecar deployments - SyncBlock-based approach works well with existing
CAP_SYS_PTRACErequirement - Allocation call-tree already existed via
collect_sample(kind="allocation")+query_snapshot(view="call-tree")
Full Changelog: v0.7.2...v0.8.0