There are two types of integrations we are going to review: emitting metrics via tracing instrumentation and partitioning metrics by the request metadata attributes.
In this section, we will discuss integration with metrics that is somewhat unique to the OpenTracing API. Since OpenTracing is a pure API that describes distributed transactions, without default implementations, it can be implemented to generate data that is unrelated to tracing. Specifically, if we think about a typical metrics instrumentation for an RPC service, we will see that the tracing instrumentation already collects all the same signals as advocated by the RED (Rate, Error, Duration) method [5]:
We start a server span for every inbound request, therefore we can count how many requests our service receives, that is, its throughput or request rate (R in RED).
If the request encounters an error, the tracing instrumentation sets the
error=true
tag on the...