Exploring tracing protocols
In Chapter 2, we introduced the three main tracing protocols, OTLP, Zipkin, and Jaeger. In this section, we will explore some of the features of these protocols, how well-supported they are, and how to use them in the software services that you write. We will also discuss the different headers used by these protocols to propagate context to other services. A tracing protocol is made up of a set of headers that are added to the HTTP requests made by an instrumented application. These headers are what propagate the information of individual spans to downstream services. Once all of these spans are collected, they form a fully distributed trace.
What are the main tracing protocols?
First, let’s look at the features and support of the main tracing protocols – OTLP, Zipkin, and Jaeger.
OTLP
OTLP tracing offers support for C++, .NET, Erlang, Go, Java, JavaScript, PHP, Python, Ruby, Rust, and Swift. There is good support for OTLP in popular...