In science and engineering, observability is the process through which a system’s internal states can be inferred from the knowledge of its external outputs. In software engineering, the outcome of the process is invisible and therefore, it is difficult to understand progress and to reason about software. One way to cope with this difficulty is to improve observability through telemetry, the process of reading and recording instruments. In the context of infrastructure and applications, this is capturing and measuring data from components and additional measurement software. However, you can also manually add telemetry to code if you’re writing your own instrumentation code or using open source libraries or tools. The downside of this approach is that it involves writing or adapting additional code and integrating it with your software. This may introduce faults or performance issues, but result in deeper measurement of internal or business processes. Once you have telemetry in place, you can use it to observe what is happening at the system level. To do this, you will need to use distributed tracing, a set of techniques to follow a single transaction which often times requires multiple component interactions downstream.
In this talk, we introduce and compare the state-of-art of Open Tracing Tools. We aim at characterising the different characteristics each tool is able to collect, and understanding the developers’ satisfaction by means of tools popularity, benefits, motivation, and issues.
The talk might be useful to practitioner interested in adopting or understanding how distributed tracing tool work.