Tracing is a type of MonitoringMonitoring
Monitoring is an integral part of running services in production. Without it, we are blind to what's going on, and thus unable to act according to our best interest.
Providing visibility is in the... which sacrifices the number of events it looks at to give us a picture of how a system behaves.
It's heavily relying on sampling - e.g. looking at only every hundredth request. Because of this, it can provide more context, and often records the stack trace together with how long each function took to execute.
It's a good way to find bottlenecks in applications and answer the question "which code paths cause the most latency?".
Distributed Tracing takes tracing a step further by attaching a unique trace id to a request, allowing you to stich together a path of a request across multiple services (tools like OpenZipkin and Jaeger)
Status: #🌱