In service monitoring, metrics and distributed tracing are relevant but different concepts, each having its own purpose. this article in spring blog gives a clear explanation and perfectly solved my confusions about the two. I made a summary on the distinction between them in a comparison table as is shown below.
Metrics | Distributed Tracing | |
---|---|---|
information granularity | system as a whole | subsystem latency |
whether pre-aggregated | YES ※1 | NO ※1 |
whether downsampled | NO | YES |
monitoring systems | Prometheus, … | Zipkin, … |
※1 For example, in a system that Service A calls Service B, Metrics data will contain the overall throughput, the latency statistics of (max, min, average) of Service A and B.
On the other side, A distributed tracing system will tell you that for a particular request, Service A took 50ms and Service B took 90ms.