Well, yeah, there's not much difference between a histogram and hundreds-of-percentiles. But there's a huge difference between a histogram and just a single percentile (whether it's p50, p95, p99, or whatever).
If you just want to know _if_ something changed then maybe one percentile is ok (though actually: not great). But if you are trying to figure out _what_ happened (or is happening!), a histogram is really important. Most of the time there are discrete behaviors/factors that are driving performance: timeouts, cache hits/misses, one overloaded host, a canary. The shape of the histogram will help you see those in a way that a single percentile can't.
Actually one of my coworkers gave a talk at Facebook Performance summit on this:
https://www.youtube.com/watch?v=EG7Zhd6gLiw
(Disclaimer: brief product pitch in the first minute as part of the speaker intro)
Tracing and debugging-in-developer are solving different problems, though: tracing is there to help you understand issues that you can't reproduce in development. And for the record, Zipkin is only one tracing tool and is really aimed at helping you address latency issues, not errors.
Yeah, we were debating about whether I should write a post about "the end of servers" instead of "the end of microservices." I thought we'd get a livelier discussion with microservices, ;) but I totally agree that they are already getting to be yesterday's buzz word.
I wrote the post with pretty rose-colored glasses on. :)
I totally agree that microservices can be a form of premature optimization, in particular because of the cost with today's tooling. But I think there's hope that lot of those costs will go down (both in terms of dev time and infrastructure) with things like AWS Lambda, etc.
Anyway, if devs think a little more about the interfaces, I think that will be a good thing.
Well maybe the more important part is building "laboratories of democracy" [1] than a republic. ;) Give each part of the org the ability to experiment, see what works best, and spread those ideas around.
Thanks for the comments! +1 to "APIs necessary for our customers." I think every developer should have a customer-oriented mindset, even if their customers are just other developers in the same organization.
If you just want to know _if_ something changed then maybe one percentile is ok (though actually: not great). But if you are trying to figure out _what_ happened (or is happening!), a histogram is really important. Most of the time there are discrete behaviors/factors that are driving performance: timeouts, cache hits/misses, one overloaded host, a canary. The shape of the histogram will help you see those in a way that a single percentile can't.