Tracing: structured logging, but better in every way | Andy Dote
It is no secret that I am not a fan of logs; I’ve baited (rapala in work lingo. Rapala is a Finnish brand of fishing lure, and used to mean baiting in this context) discussion in our work chat with things like: If you’re writing log statements, you’re doing it wrong. This is a pretty incendiary statement, and while there has been some good discussion after, I figured it was time to write down why I think logs are bad, why tracing should be used instead, and how we get from one to the other. Hopefully, with less clickbait. Step 3 will shock you, though. First, lets breakdown what I see as the key differences between logging and tracing code. If you want the practical example and want to skip this wall of text, click here. There is also a short Question and Answer at the end. Log Levels are meaningless. Is a log line debug, info, warning, error, fatal, or some other shade in between? The only time I have seen this well managed was when we had 3 descriptions: However, this has issues; a t
It is no secret that I am not a fan of logs; I've baited ( rapala in work lingo. Rapala is a Finnish brand of fishing lure, and used to mean baiting in this context) discussion in our work chat with things like: If you're writing log statements, you're doing it wrong. This is a pretty incendiary statement, and while there has been some good discussion after, I figured it was time to write down why I think logs are bad, why tracing should be used instead, and how we get from one to the other. Hopefully, with less clickbait. Step 3 will shock you, though. Logs vs Traces # First, lets breakdown w
Explore this link on the map →related reading
- Logging, Tracing, Monitoring, et al.alexandruburlacu.github.io
- The Problem with OpenTelemetrycra.mr
- All my favorite tracing tools: eBPF, QEMU, Perfetto, new ones I built and more - Tristan Humethume.ca
- On actionable and actually useful logs | Lanre Adelowolanre.wtf
- Overview | OpenTelemetryopentelemetry.io
- Monitoring is a Painmatduggan.com
- Peter Bourgon · Go for Industrial Programmingpeter.bourgon.org
- OpenTelemetry: A Guide to Observability with Go | Blog | Luca Cavallinlucavall.in
- sbensu: How to: friction logsblog.sbensu.com
- Diagnostics - The Go Programming Languagego.dev
- Grafana OSS | Leading observability tool for visualizations & dashboardsgrafana.com
- Agent Observability and Tracingarize.com