Chapter 3. Open Source Instrumentation: Interfaces, Libraries, and Frameworks

As a technology, tracing—even distributed tracing—isn’t brand-new. Developers have been building distributed systems in some form or another for decades and have turned to tracing solutions to understand these systems. One thing many of these solutions have in common, however, is that they tend to be very focused. Sometimes this focus is for a particular technology stack or language; sometimes it relies on the usage of a particular middleware provider; sometimes it’s just a home-rolled solution that’s been maintained for years by engineers who aren’t with your company anymore. More recently, we’ve seen this sort of behavior continue to proliferate aided by cloud vendors and other platform providers.

Some might say, “Well, what’s the problem here?” After all, for a great many people, these proprietary or otherwise closed solutions work fine, or at least are providing value to their users. While that certainly can be the case, these solutions are often more brittle than they appear at first glance. The foremost argument against proprietary instrumentation is that it often leaves you at the mercy of the authors of the instrumentation solution when it comes to adapting your software for new languages, methodologies, and challenges caused by increasing scale or business requirements.

Remember—one of the few constants in life, and especially in computing, is change. At the time of this writing, Microsoft is ...

Get Distributed Tracing in Practice now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.