0/ This is a đŸ§”about my experiences building both the Distributed Tracing and Metrics infra at Google.

And, particularly, my regrets. :)

Here goes: 👇
1/ Dapper certainly did some fancy tricks, and I’m sure it still does. If it’s possible to fall in love with an idea or a piece of technology, that’s what happened with me and Dapper. It wasn’t just new data, it was a new *type* of data – and lots of it. So. Much. Fun. 

2/ 
 And yet: early on, *hardly anybody actually used it.*

Dapper was certainly _valuable_ (we saved GOOG untold $10Ms in latency improvements alone) but not “day-to-day essential.” Why?
3/ Dapper’s early-days usage issues boiled down to two core challenges:

a) The insights were *restricted to the tracing (span) telemetry*
b) Those insights could only be accessed *from Dapper.* (And hardly anybody “started” in Dapper from a UX standpoint)
4/ Eventually we did make some progress (e.g., @jmacdee1’s brilliant integration into Google’s /requestz – the ancestor of OpenCensus zpages: https://opencensus.io/zpages/#tracez ).

Yet it still didn’t feel like Dapper was vital, can’t-live-without-it technology for most SREs and devs.
5/ Now, rather than step back to think about *how* we might harvest the insights from Dapper and integrate them into daily workflows, we let the project “evolve in place” – and I regret that.

Anyway, I wanted to work on something “more P0,” so I talked with lots of SREs.
6/ At the time, what tool *did* every SRE at Google use every day?

Borgmon.

And what tool caused every SRE at Google endless frustration and pain?

Also borgmon.

So we created Monarch: scalable, HA monitoring that was also, well, *usable*. https://www.vldb.org/pvldb/vol13/p3181-adams.pdf
7/ The complete story about Monarch’s early days is an interesting one, but it will have to wait for a different thread/post (too long!). What I would emphasize, though, is that Monarch only tried to solve the *monitoring* problem, not the *observability* problem.
8/ And while I am proud of the team’s technical accomplishments (Monarch is a *vast* system: over 220,000 (!) processes in steady-state), I regret that we stopped at “monitoring.” Why did such an *expensive* system have such limitations?

Correction: I *really* regret that.
9/ So what would a scalable, HA monitoring product look like if observability was built into its fabric, into its very infrastructure? If monitoring was there to measure critical signals, and observability was there to explain changes to those signals?
10/ (TBH, we never even *tried* to build that at Google
 though admittedly it would have been very difficult to take on given all of the hurdles that large companies bring to any and every development process.)
11/ So, ultimately, of course there were ∞ small regrets, and two *big* regrets:

I) We built Dapper to find patterns in traces, but we failed to make those findings *discoverable.*

II) We built Monarch for core monitoring, but we failed to make that monitoring *actionable.*
You can follow @el_bhs.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled:

By continuing to use the site, you are consenting to the use of cookies as explained in our Cookie Policy to improve your experience.