Concurrency at runtime is inherently non-deterministic and Go provides strong built-in support for concurrent programming. It also offers runtime tracing tools that capture rich execution evidence, including goroutine lifecycle and scheduling events, channel operations, blocking and unblocking behaviour, and both runtime and system activity.
Although this information is valuable for understanding concurrency, standard Go trace viewers often fail to make concurrency behaviour clear, forcing users to infer it from low-level traces—an obstacle for learners and beginners.
This thesis aims to bridge that usability gap by proposing a streamlined workflow that transforms low-level Go trace data into a more interpretable, interaction-oriented representation: an interactive, topology-first directed graph. We introduce an experimental tool, Go Trace Visualiser (GTV), which supports an end-to-end pipeline from instrumentation and trace parsing to schema normalisation and interactive visualisation. Unlike purely timeline-centric tools such as go tool trace and GotraceUI, GTV foregrounds goroutines, channels, and their communication patterns, highlighting key concurrency behaviours such as blocking and unblocking states. GTV is modular and produces a graph-based visualisation that can be explored in both offline (post-mortem) and live modes, where events are streamed to the browser to incrementally build the topology. Our evaluation indicates that a topology-first approach is practical for Go trace inspection and can improve interpretability for learners while remaining clear about what can and cannot be inferred from trace evidence.
Wednesday, 11.03.2026
| 14.00 to 14.30 h
Go Concurrency Visualiser: A graph-based tool to observe and debug
Location: F2.419
Organizer: Shuhaib Ansari, Masterarbeitsabschlussvortrag
Organizer: Shuhaib Ansari, Masterarbeitsabschlussvortrag