📄️ Intro
Observability is a fundamental part of modern application development. Being able to ask questions of your system, from a place that is external to your system, ensures that you can always understand exactly what you're system is doing.
📄️ Logging
Up until this point, whenever you needed to see some output from your application you used the println!() macro. This works, but it's like relying exclusively on Console.WriteLine() in .NET. It's not really up to scratch when you are building production ready applications. So what is the alternative in Rust?
📄️ Distributed tracing
Now that you've got structured logging in place, let's look at how you implement distributed tracing. The tracing crate, as part of the tokio ecosystem has long been the de-facto standard in Rust applications. Many 3rd party libraries have built in support for tracing, including the Axum web framework that you have used earlier in this workshop.
📄️ Challenge
Now it's time to apply what you've learned about observability in Rust! In this module's challenge, you need to: