Skip to content

v0.8.0 - GC Overlay & Diagnostic Improvements

Choose a tag to compare

@pedrosakuma pedrosakuma released this 26 May 23:54
· 103 commits to main since this release

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 by query_snapshot(view="lock-graph") to see contended SyncBlocks with waiter counts

Technical Notes

  • LTTng-based contention was evaluated but requires CAP_SYS_ADMIN which is too invasive for sidecar deployments
  • SyncBlock-based approach works well with existing CAP_SYS_PTRACE requirement
  • Allocation call-tree already existed via collect_sample(kind="allocation") + query_snapshot(view="call-tree")

Full Changelog: v0.7.2...v0.8.0