Networked applications often rely on asynchronous programming to achieve high performance and throughput. However, since execution in asynchronous software switches between tasks based on IO readiness, log messages from these systems becomes difficult to interpret. Tokio-Trace is a new diagnostics framework for the Rust programming language that provides primitives for instrumenting asynchronous systems. Unlike traditional logging, Tokio-Trace emits structured diagnostics that include the contexts of causal relationships between events.
In this talk, Eliza Weisman, software engineer at Buoyant presents the motivation and influences behind the library and introduces its core concepts. Eliza demos how tokio-trace is used to instrument async applications, and shows users how structured diagnostics can make it easy to understand complex systems.